X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_get.c;h=e91db4cf363854f3aa363691c23ece90b274c8ac;hb=ef9ddf55563059fcf3608bab479e15f28e9ceb0f;hp=6ab5b2ff54c54257e353b58db226bda9cc26a294;hpb=921abbe1906e77cc18cbe8859bc5afe9494d780e;p=awesomized%2Flibmemcached diff --git a/libmemcached/memcached_get.c b/libmemcached/memcached_get.c index 6ab5b2ff..e91db4cf 100644 --- a/libmemcached/memcached_get.c +++ b/libmemcached/memcached_get.c @@ -368,11 +368,11 @@ static memcached_return replication_binary_mget(memcached_st *ptr, int flush= number_of_keys == 1; - for (int replica = 0; replica <= ptr->number_of_replicas; ++replica) + for (uint32_t replica= 0; replica <= ptr->number_of_replicas; ++replica) { bool success= true; - for (uint32_t x= 0; x < number_of_keys; ++x) + for (x= 0; x < number_of_keys; ++x) { if (hash[x] == ptr->number_of_hosts) continue; /* Already successfully sent */ @@ -443,15 +443,14 @@ static memcached_return replication_binary_mget(memcached_st *ptr, memcached_server_response_increment(&ptr->hosts[x]); /* mark all of the messages bound for this server as sent! */ - for (uint32_t x= 0; x < number_of_keys; ++x) + for (x= 0; x < number_of_keys; ++x) if (hash[x] == x) hash[x]= ptr->number_of_hosts; } } - 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; }