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_array_st *memcached_strcpy(memcached_st *memc, const char *str, size_t str_length) { memcached_array_st *array= (struct memcached_array_st *)libmemcached_malloc(memc, sizeof(struct memcached_array_st) +str_length +1); if (! array) return NULL; array->root= memc; array->size= str_length -1; // We don't count the NULL ending memcpy(array->c_str, str, str_length); array->c_str[str_length]= 0; return array; }
memcached_array_st *memcached_strcpy(struct memcached_st *memc, const char *str, size_t str_length) { assert(memc); assert(str); assert(str_length); memcached_array_st *array= (struct memcached_array_st *)libmemcached_malloc(memc, sizeof(struct memcached_array_st) +str_length +1); if (array) { array->root= memc; array->size= str_length; // We don't count the NULL ending memcpy(array->c_str, str, str_length); array->c_str[str_length]= 0; } return array; }