X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fallocators.cc;h=f1caf71ec373eab433bd3832d5d010a3218f2b45;hb=411d5ae2fdcd66d8613d38c3725e4ef76f022fea;hp=d18372b4ba6ca9793e1f60787487c36a80bfff7d;hpb=bd53173d0a23c8c2a0dac68056cbd2cc52d5a6ef;p=awesomized%2Flibmemcached diff --git a/libmemcached/allocators.cc b/libmemcached/allocators.cc index d18372b4..f1caf71e 100644 --- a/libmemcached/allocators.cc +++ b/libmemcached/allocators.cc @@ -41,26 +41,26 @@ void _libmemcached_free(const memcached_st*, void *mem, void*) { if (mem) { - free(mem); + std::free(mem); } } void *_libmemcached_malloc(const memcached_st *, size_t size, void *) { - return malloc(size); + return std::malloc(size); } void *_libmemcached_realloc(const memcached_st*, void *mem, size_t size, void *) { - return realloc(mem, size); + return std::realloc(mem, size); } void *_libmemcached_calloc(const memcached_st *self, size_t nelem, size_t size, void *context) { if (self->allocators.malloc != _libmemcached_malloc) { - void *ret = _libmemcached_malloc(self, nelem * size, context); - if (not ret) + void *ret= _libmemcached_malloc(self, nelem * size, context); + if (ret) { memset(ret, 0, nelem * size); } @@ -68,7 +68,7 @@ void *_libmemcached_calloc(const memcached_st *self, size_t nelem, size_t size, return ret; } - return calloc(nelem, size); + return std::calloc(nelem, size); } struct memcached_allocator_t memcached_allocators_return_default(void) @@ -77,13 +77,14 @@ struct memcached_allocator_t memcached_allocators_return_default(void) return global_default_allocator; } -memcached_return_t memcached_set_memory_allocators(memcached_st *self, +memcached_return_t memcached_set_memory_allocators(memcached_st *shell, memcached_malloc_fn mem_malloc, memcached_free_fn mem_free, memcached_realloc_fn mem_realloc, memcached_calloc_fn mem_calloc, void *context) { + Memcached* self= memcached2Memcached(shell); if (self == NULL) { return MEMCACHED_INVALID_ARGUMENTS; @@ -110,24 +111,44 @@ memcached_return_t memcached_set_memory_allocators(memcached_st *self, return MEMCACHED_SUCCESS; } -void *memcached_get_memory_allocators_context(const memcached_st *self) +void *memcached_get_memory_allocators_context(const memcached_st *shell) { - return self->allocators.context; + const Memcached* self= memcached2Memcached(shell); + if (self) + { + return self->allocators.context; + } + + return NULL; } -void memcached_get_memory_allocators(const memcached_st *self, +void memcached_get_memory_allocators(const memcached_st *shell, memcached_malloc_fn *mem_malloc, memcached_free_fn *mem_free, memcached_realloc_fn *mem_realloc, memcached_calloc_fn *mem_calloc) { - if (self == NULL) + const Memcached* self= memcached2Memcached(shell); + if (self) { - return; - } + if (mem_malloc) + { + *mem_malloc= self->allocators.malloc; + } + + if (mem_free) + { + *mem_free= self->allocators.free; + } - *mem_malloc= self->allocators.malloc; - *mem_free= self->allocators.free; - *mem_realloc= self->allocators.realloc; - *mem_calloc= self->allocators.calloc; + if (mem_realloc) + { + *mem_realloc= self->allocators.realloc; + } + + if (mem_calloc) + { + *mem_calloc= self->allocators.calloc; + } + } }