X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fallocators.cc;h=e1c9d780e3d3af5cd0d9578235fdbba35f2387a7;hb=8cf5f36e16ecaf6e1e7622a3a7cad81491602b0d;hp=cc41f2c37a7bb1adddad5e6c365be07e42fb9409;hpb=0ae14bed70947882f5ee9423dfcb20eeda7acdd9;p=awesomized%2Flibmemcached diff --git a/libmemcached/allocators.cc b/libmemcached/allocators.cc index cc41f2c3..e1c9d780 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) @@ -90,11 +90,11 @@ memcached_return_t memcached_set_memory_allocators(memcached_st *self, } /* All should be set, or none should be set */ - if (mem_malloc == NULL && mem_free == NULL && mem_realloc == NULL && mem_calloc == NULL) + if (mem_malloc == NULL and mem_free == NULL and mem_realloc == NULL and mem_calloc == NULL) { self->allocators= memcached_allocators_return_default(); } - else if (mem_malloc == NULL || mem_free == NULL || mem_realloc == NULL || mem_calloc == NULL) + else if (mem_malloc == NULL or mem_free == NULL or mem_realloc == NULL or mem_calloc == NULL) { return memcached_set_error(*self, MEMCACHED_INVALID_ARGUMENTS, MEMCACHED_AT, memcached_literal_param("NULL parameter provided for one or more allocators")); } @@ -126,8 +126,23 @@ void memcached_get_memory_allocators(const memcached_st *self, return; } - *mem_malloc= self->allocators.malloc; - *mem_free= self->allocators.free; - *mem_realloc= self->allocators.realloc; - *mem_calloc= self->allocators.calloc; + if (mem_malloc) + { + *mem_malloc= self->allocators.malloc; + } + + if (mem_free) + { + *mem_free= self->allocators.free; + } + + if (mem_realloc) + { + *mem_realloc= self->allocators.realloc; + } + + if (mem_calloc) + { + *mem_calloc= self->allocators.calloc; + } }