X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=inline;f=lib%2Fmemcached.c;h=5471eba6e8b16c743f86075a867268cded2dc7ea;hb=8820c618bc66991f0ea6cb45cd8deb0fc0fc560e;hp=24c3b8bc4048198c60e10e581f371461490a3563;hpb=b1d5d8be2237f04ccc99939399ebe7efad3f684e;p=awesomized%2Flibmemcached diff --git a/lib/memcached.c b/lib/memcached.c index 24c3b8bc..5471eba6 100644 --- a/lib/memcached.c +++ b/lib/memcached.c @@ -35,6 +35,9 @@ void memcached_free(memcached_st *ptr) memcached_server_list_free(ptr->hosts); memcached_result_free(&ptr->result); + if (ptr->on_cleanup) + ptr->on_cleanup(ptr); + if (ptr->is_allocated == MEMCACHED_ALLOCATED) free(ptr); else @@ -52,7 +55,14 @@ memcached_st *memcached_clone(memcached_st *clone, memcached_st *ptr) memcached_st *new_clone; if (ptr == NULL) - return memcached_create(clone); + { + new_clone= memcached_create(clone); + + if (ptr->on_clone) + ptr->on_clone(NULL, new_clone); + + return new_clone; + } if (ptr->is_allocated == MEMCACHED_USED) { @@ -82,6 +92,10 @@ memcached_st *memcached_clone(memcached_st *clone, memcached_st *ptr) new_clone->poll_timeout= ptr->poll_timeout; new_clone->distribution= ptr->distribution; new_clone->hash= ptr->hash; + new_clone->user_data= ptr->user_data; + + if (ptr->on_clone) + ptr->on_clone(ptr, new_clone); return new_clone; }