X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_callback.c;h=95d6a384836666c2c15e2d52250f02ac73221a27;hb=8a86b578acc594d37a8638e3e0afba1286c4b6ca;hp=7149e276332252803f8ee35cb89114374494714f;hpb=82c139bbdfb42cd2203a1a4b570dd287a8054f90;p=m6w6%2Flibmemcached diff --git a/lib/memcached_callback.c b/lib/memcached_callback.c index 7149e276..95d6a384 100644 --- a/lib/memcached_callback.c +++ b/lib/memcached_callback.c @@ -20,16 +20,34 @@ memcached_return memcached_callback_set(memcached_st *ptr, } case MEMCACHED_CALLBACK_CLEANUP_FUNCTION: { - cleanup_func func= (cleanup_func)data; + memcached_cleanup_func func= (memcached_cleanup_func)data; ptr->on_cleanup= func; break; } case MEMCACHED_CALLBACK_CLONE_FUNCTION: { - clone_func func= (clone_func)data; + memcached_clone_func func= (memcached_clone_func)data; ptr->on_clone= func; break; } + case MEMCACHED_CALLBACK_MALLOC_FUNCTION: + { + memcached_malloc_function func= (memcached_malloc_function)data; + ptr->call_malloc= func; + break; + } + case MEMCACHED_CALLBACK_REALLOC_FUNCTION: + { + memcached_realloc_function func= (memcached_realloc_function)data; + ptr->call_realloc= func; + break; + } + case MEMCACHED_CALLBACK_FREE_FUNCTION: + { + memcached_free_function func= (memcached_free_function)data; + ptr->call_free= func; + break; + } default: return MEMCACHED_FAILURE; } @@ -41,6 +59,10 @@ void *memcached_callback_get(memcached_st *ptr, memcached_callback flag, memcached_return *error) { + memcached_return local_error; + if (!error) + error = &local_error; + switch (flag) { case MEMCACHED_CALLBACK_USER_DATA: @@ -58,6 +80,21 @@ void *memcached_callback_get(memcached_st *ptr, *error= ptr->on_clone ? MEMCACHED_SUCCESS : MEMCACHED_FAILURE; return (void *)ptr->on_clone; } + case MEMCACHED_CALLBACK_MALLOC_FUNCTION: + { + *error= ptr->call_malloc ? MEMCACHED_SUCCESS : MEMCACHED_FAILURE; + return (void *)ptr->call_malloc; + } + case MEMCACHED_CALLBACK_REALLOC_FUNCTION: + { + *error= ptr->call_realloc ? MEMCACHED_SUCCESS : MEMCACHED_FAILURE; + return (void *)ptr->call_realloc; + } + case MEMCACHED_CALLBACK_FREE_FUNCTION: + { + *error= ptr->call_free ? MEMCACHED_SUCCESS : MEMCACHED_FAILURE; + return (void *)ptr->call_free; + } default: WATCHPOINT_ASSERT(0); *error= MEMCACHED_FAILURE;