1.1 --- a/ucx/buffer.c Wed Oct 10 09:54:57 2012 +0200 1.2 +++ b/ucx/buffer.c Wed Oct 10 10:04:01 2012 +0200 1.3 @@ -7,12 +7,13 @@ 1.4 void *space; 1.5 off_t pos; 1.6 size_t length; 1.7 - _Bool autofree; 1.8 + int flags; 1.9 }; 1.10 1.11 -UcxBuffer *ucx_buffer_new(void *space, size_t length) { 1.12 +UcxBuffer *ucx_buffer_new(void *space, size_t length, int flags) { 1.13 UcxBuffer *buffer = (UcxBuffer*) malloc(sizeof(UcxBuffer)); 1.14 if (buffer) { 1.15 + buffer->flags = flags; 1.16 if (!space) { 1.17 buffer->space = malloc(length); 1.18 if (!buffer->space) { 1.19 @@ -20,10 +21,9 @@ 1.20 return NULL; 1.21 } 1.22 memset(buffer->space, 0, length); 1.23 - buffer->autofree = 1; 1.24 + buffer->flags |= UCX_BUFFER_AUTOFREE; 1.25 } else { 1.26 buffer->space = space; 1.27 - buffer->autofree = 0; 1.28 } 1.29 buffer->length = length; 1.30 1.31 @@ -34,7 +34,7 @@ 1.32 } 1.33 1.34 void ucx_buffer_free(UcxBuffer *buffer) { 1.35 - if (buffer->autofree) { 1.36 + if ((buffer->flags & UCX_BUFFER_AUTOFREE) > 0) { 1.37 free(buffer->space); 1.38 } 1.39 free(buffer);