X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fresult.c;h=6e58eebd998f2f2f2362f1a018b8db2cb1fb72ec;hb=c4dbc7e56b01545e25bc95ba122c79d4a2631a99;hp=06e3ba9e75d472b526982f926515b953f13de69e;hpb=ea47169abd0793bb7eb1b72e4de411ae9b43dce4;p=awesomized%2Flibmemcached diff --git a/libmemcached/result.c b/libmemcached/result.c index 06e3ba9e..6e58eebd 100644 --- a/libmemcached/result.c +++ b/libmemcached/result.c @@ -18,7 +18,7 @@ #include "common.h" static inline void _result_init(memcached_result_st *self, - const memcached_st *memc) + memcached_st *memc) { self->item_flags= 0; self->item_expiration= 0; @@ -50,9 +50,8 @@ memcached_result_st *memcached_result_create(const memcached_st *memc, ptr->options.is_initialized= true; - _result_init(ptr, memc); + _result_init(ptr, (memcached_st *)memc); - ptr->root= memc; WATCHPOINT_SET(ptr->value.options.is_initialized= false); memcached_string_create(memc, &ptr->value, 0); WATCHPOINT_ASSERT_INITIALIZED(&ptr->value); @@ -92,47 +91,54 @@ memcached_return_t memcached_result_set_value(memcached_result_st *ptr, const char *value, size_t length) { - return memcached_string_append(&ptr->value, value, length); + memcached_return_t rc= memcached_string_append(&ptr->value, value, length); + + if (rc == MEMCACHED_MEMORY_ALLOCATION_FAILURE) + { + memcached_set_errno(ptr->root, errno, NULL); + } + + return rc; } -inline const char *memcached_result_key_value(const memcached_result_st *self) +const char *memcached_result_key_value(const memcached_result_st *self) { return self->key_length ? self->item_key : NULL; } -inline size_t memcached_result_key_length(const memcached_result_st *self) +size_t memcached_result_key_length(const memcached_result_st *self) { return self->key_length; } -inline const char *memcached_result_value(const memcached_result_st *self) +const char *memcached_result_value(const memcached_result_st *self) { const memcached_string_st *sptr= &self->value; return memcached_string_value(sptr); } -inline size_t memcached_result_length(const memcached_result_st *self) +size_t memcached_result_length(const memcached_result_st *self) { const memcached_string_st *sptr= &self->value; return memcached_string_length(sptr); } -inline uint32_t memcached_result_flags(const memcached_result_st *self) +uint32_t memcached_result_flags(const memcached_result_st *self) { return self->item_flags; } -inline uint64_t memcached_result_cas(const memcached_result_st *self) +uint64_t memcached_result_cas(const memcached_result_st *self) { return self->item_cas; } -inline void memcached_result_set_flags(memcached_result_st *self, uint32_t flags) +void memcached_result_set_flags(memcached_result_st *self, uint32_t flags) { self->item_flags= flags; } -inline void memcached_result_set_expiration(memcached_result_st *self, time_t expiration) +void memcached_result_set_expiration(memcached_result_st *self, time_t expiration) { self->item_expiration= expiration; }