X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fvirtual_bucket.c;h=951881bd390e42640fbda13bed64f2c230933451;hb=7fc1ce1d52601c1ba1d8e7ff0035a7243eaf14c3;hp=74ec10ef63f2149ab3186d8e0b35fd23f247a5d4;hpb=1170b1b371ce7bdb50e8e7ae887687f5a45f81b9;p=awesomized%2Flibmemcached diff --git a/libmemcached/virtual_bucket.c b/libmemcached/virtual_bucket.c index 74ec10ef..951881bd 100644 --- a/libmemcached/virtual_bucket.c +++ b/libmemcached/virtual_bucket.c @@ -35,9 +35,7 @@ * */ -#include -#include -#include +#include struct bucket_t { uint32_t master; @@ -57,15 +55,20 @@ memcached_return_t memcached_virtual_bucket_create(memcached_st *self, const uint32_t buckets, const uint32_t replicas) { - if (! self || ! host_map || ! buckets) + if (self == NULL || host_map == NULL || buckets == 0U) + { return MEMCACHED_INVALID_ARGUMENTS; + } memcached_virtual_bucket_free(self); struct memcached_virtual_bucket_t *virtual_bucket= (struct memcached_virtual_bucket_t *)malloc(sizeof(struct memcached_virtual_bucket_t) + sizeof(struct bucket_t) *buckets); - if (! virtual_bucket) + if (virtual_bucket == NULL) + { return MEMCACHED_MEMORY_ALLOCATION_FAILURE; + } + virtual_bucket->size= buckets; virtual_bucket->replicas= replicas; @@ -84,36 +87,34 @@ memcached_return_t memcached_virtual_bucket_create(memcached_st *self, virtual_bucket->buckets[x].forward= 0; } } - return MEMCACHED_SUCCESS; } void memcached_virtual_bucket_free(memcached_st *self) { - if (! self) - return; - - if (! self->virtual_bucket) - return; - - free(self->virtual_bucket); - self->virtual_bucket= NULL; + if (self) + { + if (self->virtual_bucket) + { + free(self->virtual_bucket); + self->virtual_bucket= NULL; + } + } } uint32_t memcached_virtual_bucket_get(const memcached_st *self, uint32_t digest) { - if (! self) - return 0; - - if (! self->virtual_bucket) - return 0; - - if (self->virtual_bucket) + if (self) { - uint32_t result= (uint32_t) (digest & (self->virtual_bucket->size -1)); - return self->virtual_bucket->buckets[result].master; + if (self->virtual_bucket) + { + uint32_t result= (uint32_t) (digest & (self->virtual_bucket->size -1)); + return self->virtual_bucket->buckets[result].master; + } + + return (uint32_t) (digest & (self->number_of_hosts -1)); } - return (uint32_t) (digest & (self->number_of_hosts -1)); + return 0; }