void server_list_free(memcached_st *ptr, memcached_server_st *servers) { uint32_t x; if (servers == NULL) return; for (x= 0; x < memcached_servers_count(servers); x++) { if (servers[x].address_info) { freeaddrinfo(servers[x].address_info); servers[x].address_info= NULL; } } if (ptr) { libmemcached_free(ptr, servers); } else { free(servers); } }
void memcached_array_free(memcached_array_st *array) { if (array) { WATCHPOINT_ASSERT(array->root); libmemcached_free(array->root, array); } }
void memcached_free(memcached_st *ptr) { /* If we have anything open, lets close it now */ memcached_quit(ptr); server_list_free(ptr, memcached_server_list(ptr)); memcached_result_free(&ptr->result); if (ptr->on_cleanup) ptr->on_cleanup(ptr); if (ptr->continuum) libmemcached_free(ptr, ptr->continuum); if (memcached_is_allocated(ptr)) { libmemcached_free(ptr, ptr); } }
void memcached_array_free(memcached_array_st *array) { if (! array) return; WATCHPOINT_ASSERT(array->root); if (array && array->root) { libmemcached_free(array->root, array); } else if (array) { free(array); } }
void memcached_result_free(memcached_result_st *ptr) { if (ptr == NULL) return; memcached_string_free(&ptr->value); if (memcached_is_allocated(ptr)) { WATCHPOINT_ASSERT(ptr->root); // Without a root, that means that result was not properly initialized. libmemcached_free(ptr->root, ptr); } else { ptr->options.is_initialized= false; } }