X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_get.c;h=0209b283ab1129ec5b53347e91d1420ca2366e36;hb=29db6c77e126d9ae0c416ad76402fdbef7372cdb;hp=6ab5b2ff54c54257e353b58db226bda9cc26a294;hpb=921abbe1906e77cc18cbe8859bc5afe9494d780e;p=m6w6%2Flibmemcached diff --git a/libmemcached/memcached_get.c b/libmemcached/memcached_get.c index 6ab5b2ff..0209b283 100644 --- a/libmemcached/memcached_get.c +++ b/libmemcached/memcached_get.c @@ -449,9 +449,8 @@ static memcached_return replication_binary_mget(memcached_st *ptr, } } - if (success) { + if (success) break; - } } return rc; @@ -469,57 +468,34 @@ static memcached_return binary_mget_by_key(memcached_st *ptr, { rc= simple_binary_mget(ptr, master_server_key, is_master_key_set, keys, key_length, number_of_keys); - } else { + } + else + { uint32_t* hash; bool* dead_servers; - if (ptr->call_malloc) - { - hash= ptr->call_malloc(ptr, sizeof(uint32_t) * number_of_keys); - dead_servers= ptr->call_malloc(ptr, sizeof(bool) * ptr->number_of_hosts); - } - else - { - hash = malloc(sizeof(uint32_t) * number_of_keys); - dead_servers= malloc(sizeof(bool) * ptr->number_of_hosts); - } + hash= ptr->call_malloc(ptr, sizeof(uint32_t) * number_of_keys); + dead_servers= ptr->call_calloc(ptr, ptr->number_of_hosts, sizeof(bool)); if (hash == NULL || dead_servers == NULL) { - if (ptr->call_free) - { - if (hash != NULL) ptr->call_free(ptr, hash); - if (dead_servers != NULL) ptr->call_free(ptr, dead_servers); - } - else - { - free(hash); /* No need to check for NULL (just look in the C spec) */ - free(dead_servers); - } + ptr->call_free(ptr, hash); + ptr->call_free(ptr, dead_servers); return MEMCACHED_MEMORY_ALLOCATION_FAILURE; } - memset(dead_servers, 0, sizeof(bool) * ptr->number_of_hosts); - if (is_master_key_set) - for (unsigned int x= 0; x < number_of_keys; ++x) + for (unsigned int x= 0; x < number_of_keys; x++) hash[x]= master_server_key; else - for (unsigned int x= 0; x < number_of_keys; ++x) + for (unsigned int x= 0; x < number_of_keys; x++) hash[x]= memcached_generate_hash(ptr, keys[x], key_length[x]); - rc= replication_binary_mget(ptr, hash, dead_servers, keys, key_length, number_of_keys); + rc= replication_binary_mget(ptr, hash, dead_servers, keys, + key_length, number_of_keys); - if (ptr->call_free) - { - ptr->call_free(ptr, hash); - ptr->call_free(ptr, dead_servers); - } - else - { - free(hash); - free(dead_servers); - } + ptr->call_free(ptr, hash); + ptr->call_free(ptr, dead_servers); return MEMCACHED_SUCCESS; }