X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_result.c;h=cf3894bef3b7545fcdaca9be56d6e1883f25b2a3;hb=347434b799ba94bd621df9a1d277ff8a36157f21;hp=49f44b23397e353bc64e42b6f70521274991a3bc;hpb=d4dc795f136a3a652c5b13b4d818345c6080bceb;p=m6w6%2Flibmemcached diff --git a/lib/memcached_result.c b/lib/memcached_result.c index 49f44b23..cf3894be 100644 --- a/lib/memcached_result.c +++ b/lib/memcached_result.c @@ -17,8 +17,12 @@ memcached_result_st *memcached_result_create(memcached_st *memc, } else { - ptr= (memcached_result_st *)malloc(sizeof(memcached_result_st)); - if (!ptr) + if (memc->call_malloc) + ptr= (memcached_result_st *)memc->call_malloc(memc, sizeof(memcached_result_st)); + else + ptr= (memcached_result_st *)malloc(sizeof(memcached_result_st)); + + if (ptr == NULL) return NULL; memset(ptr, 0, sizeof(memcached_result_st)); ptr->is_allocated= MEMCACHED_ALLOCATED; @@ -34,8 +38,13 @@ memcached_result_st *memcached_result_create(memcached_st *memc, void memcached_result_free(memcached_result_st *ptr) { + if (ptr == NULL) + return; + memcached_string_free(&ptr->value); if (ptr->is_allocated == MEMCACHED_ALLOCATED) free(ptr); + else + ptr->is_allocated= MEMCACHED_USED; }