X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fresult.cc;h=e7bac559d6456cc17d1bcfb890442dccf62c0a18;hb=983523c4536f12781533124cb8a00a4291b8cf79;hp=1d0b763df67ab72d89b48cd18be79b6a220ae01f;hpb=ae6bc7501efd5aeaaee92dabe2da0ec2d1625c5b;p=m6w6%2Flibmemcached diff --git a/libmemcached/result.cc b/libmemcached/result.cc index 1d0b763d..e7bac559 100644 --- a/libmemcached/result.cc +++ b/libmemcached/result.cc @@ -52,6 +52,8 @@ static inline void _result_init(memcached_result_st *self, self->key_length= 0; self->item_cas= 0; self->root= memc; + self->numeric_value= UINT64_MAX; + self->count= 0; self->item_key[0]= 0; } @@ -67,10 +69,12 @@ memcached_result_st *memcached_result_create(const memcached_st *memc, } else { - ptr= static_cast(libmemcached_malloc(memc, sizeof(memcached_result_st))); + ptr= libmemcached_xmalloc(memc, memcached_result_st); - if (ptr == NULL) + if (not ptr) + { return NULL; + } ptr->options.is_allocated= true; } @@ -80,7 +84,7 @@ memcached_result_st *memcached_result_create(const memcached_st *memc, _result_init(ptr, (memcached_st *)memc); WATCHPOINT_SET(ptr->value.options.is_initialized= false); - memcached_string_create(memc, &ptr->value, 0); + memcached_string_create((memcached_st*)memc, &ptr->value, 0); WATCHPOINT_ASSERT_INITIALIZED(&ptr->value); WATCHPOINT_ASSERT(ptr->value.string == NULL); @@ -94,14 +98,18 @@ void memcached_result_reset(memcached_result_st *ptr) ptr->item_flags= 0; ptr->item_cas= 0; ptr->item_expiration= 0; + ptr->numeric_value= UINT64_MAX; } void memcached_result_free(memcached_result_st *ptr) { if (ptr == NULL) + { return; + } memcached_string_free(&ptr->value); + ptr->numeric_value= UINT64_MAX; if (memcached_is_allocated(ptr)) { @@ -110,22 +118,26 @@ void memcached_result_free(memcached_result_st *ptr) } else { + ptr->count= 0; ptr->options.is_initialized= false; } } +void memcached_result_reset_value(memcached_result_st *ptr) +{ + memcached_string_reset(&ptr->value); +} + memcached_return_t memcached_result_set_value(memcached_result_st *ptr, const char *value, size_t length) { - memcached_return_t rc= memcached_string_append(&ptr->value, value, length); - - if (rc == MEMCACHED_MEMORY_ALLOCATION_FAILURE) + if (memcached_failed(memcached_string_append(&ptr->value, value, length))) { - memcached_set_errno(ptr->root, errno, NULL); + return memcached_set_errno(*ptr->root, errno, MEMCACHED_AT); } - return rc; + return MEMCACHED_SUCCESS; } const char *memcached_result_key_value(const memcached_result_st *self)