memcached_result_st *memcached_result_create(const memcached_st *memc, memcached_result_st *ptr) { WATCHPOINT_ASSERT(memc); /* Saving malloc calls :) */ if (ptr) { ptr->options.is_allocated= false; } else { ptr= libmemcached_malloc(memc, sizeof(memcached_result_st)); if (ptr == NULL) return NULL; ptr->options.is_allocated= true; } ptr->options.is_initialized= true; _result_init(ptr, memc); ptr->root= memc; WATCHPOINT_SET(ptr->value.options.is_initialized= false); memcached_string_create(memc, &ptr->value, 0); WATCHPOINT_ASSERT_INITIALIZED(&ptr->value); WATCHPOINT_ASSERT(ptr->value.string == NULL); return ptr; }
memcached_st *memcached_create(memcached_st *ptr) { if (ptr == NULL) { ptr= (memcached_st *)malloc(sizeof(memcached_st)); if (! ptr) { return NULL; /* MEMCACHED_MEMORY_ALLOCATION_FAILURE */ } ptr->options.is_allocated= true; } else { ptr->options.is_allocated= false; } #if 0 memcached_set_purging(ptr, false); memcached_set_processing_input(ptr, false); #endif if (! _memcached_init(ptr)) { memcached_free(ptr); return NULL; } if (! memcached_result_create(ptr, &ptr->result)) { memcached_free(ptr); return NULL; } WATCHPOINT_ASSERT_INITIALIZED(&ptr->result); return ptr; }