ucx/allocator.h

changeset 107
86b19c98b5fd
parent 103
08018864fb91
child 118
151f5345f303
     1.1 --- a/ucx/allocator.h	Fri Jun 21 11:18:24 2013 +0200
     1.2 +++ b/ucx/allocator.h	Thu Jul 11 17:32:48 2013 +0200
     1.3 @@ -38,20 +38,26 @@
     1.4  typedef void*(*ucx_allocator_malloc)(void *pool, size_t n);
     1.5  typedef void*(*ucx_allocator_calloc)(void *pool, size_t n, size_t size);
     1.6  typedef void*(*ucx_allocator_realloc)(void *pool, void *data, size_t n);
     1.7 +typedef void(*ucx_allocator_free)(void *pool, void *data);
     1.8  
     1.9  typedef struct {
    1.10      void *pool;
    1.11 -    ucx_allocator_malloc malloc;
    1.12 -    ucx_allocator_calloc calloc;
    1.13 +    ucx_allocator_malloc  malloc;
    1.14 +    ucx_allocator_calloc  calloc;
    1.15      ucx_allocator_realloc realloc;
    1.16 +    ucx_allocator_free    free;
    1.17  } UcxAllocator;
    1.18  
    1.19 +UcxAllocator *ucx_default_allocator();
    1.20 +
    1.21  void *ucx_default_malloc(void *ignore, size_t n);
    1.22  void *ucx_default_calloc(void *ignore, size_t n, size_t size);
    1.23  void *ucx_default_realloc(void *ignore, void *data, size_t n);
    1.24 +void ucx_default_free(void *ignore, void *data);
    1.25  
    1.26  #define UCX_ALLOCATOR_DEFAULT {NULL, \
    1.27 -        ucx_default_malloc, ucx_default_calloc, ucx_default_realloc}
    1.28 +        ucx_default_malloc, ucx_default_calloc, ucx_default_realloc, \
    1.29 +        ucx_default_free }
    1.30  
    1.31  #ifdef	__cplusplus
    1.32  }

mercurial