X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fvirtual_bucket.c;h=951881bd390e42640fbda13bed64f2c230933451;hb=2eb14a59f3626073017de925929dcc7e3e9eb43d;hp=8af3a72fdca656c5a85abf9c62877fb29d93179f;hpb=ed3d7e83a8f9445b8fb4eb49b1bd088744abc645;p=awesomized%2Flibmemcached diff --git a/libmemcached/virtual_bucket.c b/libmemcached/virtual_bucket.c index 8af3a72f..951881bd 100644 --- a/libmemcached/virtual_bucket.c +++ b/libmemcached/virtual_bucket.c @@ -55,7 +55,7 @@ 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; } @@ -93,37 +93,28 @@ memcached_return_t memcached_virtual_bucket_create(memcached_st *self, void memcached_virtual_bucket_free(memcached_st *self) { - if (self == NULL) + if (self) { - return; - } - - if (self->virtual_bucket == NULL) - { - return; + if (self->virtual_bucket) + { + free(self->virtual_bucket); + self->virtual_bucket= NULL; + } } - - free(self->virtual_bucket); - self->virtual_bucket= NULL; } uint32_t memcached_virtual_bucket_get(const memcached_st *self, uint32_t digest) { - if (self == NULL) + if (self) { - return 0; - } - - if (self->virtual_bucket == NULL) - { - return 0; - } + if (self->virtual_bucket) + { + 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; }