projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Merge in trunk.
[m6w6/libmemcached]
/
libmemcached
/
allocators.cc
diff --git
a/libmemcached/allocators.cc
b/libmemcached/allocators.cc
index ec491ddbc825d61bb64d6723bcae61d12aa151a3..cc41f2c37a7bb1adddad5e6c365be07e42fb9409 100644
(file)
--- a/
libmemcached/allocators.cc
+++ b/
libmemcached/allocators.cc
@@
-40,7
+40,9
@@
void _libmemcached_free(const memcached_st*, void *mem, void*)
{
if (mem)
void _libmemcached_free(const memcached_st*, void *mem, void*)
{
if (mem)
+ {
free(mem);
free(mem);
+ }
}
void *_libmemcached_malloc(const memcached_st *, size_t size, void *)
}
void *_libmemcached_malloc(const memcached_st *, size_t size, void *)
@@
-59,7
+61,9
@@
void *_libmemcached_calloc(const memcached_st *self, size_t nelem, size_t size,
{
void *ret = _libmemcached_malloc(self, nelem * size, context);
if (not ret)
{
void *ret = _libmemcached_malloc(self, nelem * size, context);
if (not ret)
+ {
memset(ret, 0, nelem * size);
memset(ret, 0, nelem * size);
+ }
return ret;
}
return ret;
}
@@
-80,6
+84,11
@@
memcached_return_t memcached_set_memory_allocators(memcached_st *self,
memcached_calloc_fn mem_calloc,
void *context)
{
memcached_calloc_fn mem_calloc,
void *context)
{
+ if (self == NULL)
+ {
+ return MEMCACHED_INVALID_ARGUMENTS;
+ }
+
/* All should be set, or none should be set */
if (mem_malloc == NULL && mem_free == NULL && mem_realloc == NULL && mem_calloc == NULL)
{
/* All should be set, or none should be set */
if (mem_malloc == NULL && mem_free == NULL && mem_realloc == NULL && mem_calloc == NULL)
{
@@
-87,7
+96,7
@@
memcached_return_t memcached_set_memory_allocators(memcached_st *self,
}
else if (mem_malloc == NULL || mem_free == NULL || mem_realloc == NULL || mem_calloc == NULL)
{
}
else if (mem_malloc == NULL || mem_free == NULL || mem_realloc == NULL || mem_calloc == NULL)
{
- return
MEMCACHED_FAILURE
;
+ return
memcached_set_error(*self, MEMCACHED_INVALID_ARGUMENTS, MEMCACHED_AT, memcached_literal_param("NULL parameter provided for one or more allocators"))
;
}
else
{
}
else
{
@@
-112,6
+121,11
@@
void memcached_get_memory_allocators(const memcached_st *self,
memcached_realloc_fn *mem_realloc,
memcached_calloc_fn *mem_calloc)
{
memcached_realloc_fn *mem_realloc,
memcached_calloc_fn *mem_calloc)
{
+ if (self == NULL)
+ {
+ return;
+ }
+
*mem_malloc= self->allocators.malloc;
*mem_free= self->allocators.free;
*mem_realloc= self->allocators.realloc;
*mem_malloc= self->allocators.malloc;
*mem_free= self->allocators.free;
*mem_realloc= self->allocators.realloc;