@@ -70,12 +70,10 @@ void buffer_init(struct buffer *data)
7070 if (_NULL (data ))
7171 return ;
7272
73- W_DBG (NOTICE , NULL , " initializing buffer { { %p, %p }, %p, %zu, %zu }" , data -> list .p , data -> list .n , data -> ptr , data -> len , data -> size );
73+ W_DBG (NOTICE , NULL , " initializing buffer { { %p %p } %p %zu/ %zu }" , data -> list .p , data -> list .n , data -> ptr , data -> len , data -> size );
7474
75+ (void )memset (data , 0 , sizeof (* data ));
7576 LIST_INIT (& (data -> list ));
76- PTR_FREE (data -> ptr );
77- data -> len = 0 ;
78- data -> size = 0 ;
7977}
8078
8179
@@ -99,12 +97,14 @@ void buffer_free(struct buffer *data)
9997 if (_NULL (data ))
10098 return ;
10199
102- W_DBG (NOTICE , NULL , " freeing buffer { { %p, %p }, %p, %zu, %zu }" , data -> list .p , data -> list .n , data -> ptr , data -> len , data -> size );
100+ W_DBG (NOTICE , NULL , " freeing buffer { { %p %p } %p %zu/ %zu }" , data -> list .p , data -> list .n , data -> ptr , data -> len , data -> size );
103101
104102 if (_nNULL (data -> list .p ) && _nNULL (data -> list .n ))
105103 LIST_DEL (& (data -> list ));
106- PTR_FREE (data -> ptr );
104+ if (data -> size > 0 )
105+ PTR_FREE (data -> ptr );
107106 (void )memset (data , 0 , sizeof (* data ));
107+ LIST_INIT (& (data -> list ));
108108}
109109
110110
@@ -227,7 +227,7 @@ ssize_t buffer_grow(struct buffer *data, const void *src, size_t n)
227227 w_log (NULL , _E ("Failed to allocate data: %m" ));
228228 }
229229 else {
230- W_DBG (NOTICE , NULL , " reallocating buffer { %p, %zu, %zu } -> { %p, %zu, %zu }" ,
230+ W_DBG (NOTICE , NULL , " reallocating buffer { %p %zu/ %zu } -> { %p %zu/ %zu }" ,
231231 data -> ptr , data -> len , data -> size , ptr , data -> len + (_NULL (src ) ? 0 : n ), data -> size + size );
232232
233233 if (_NULL (src )) {
0 commit comments