X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fanalyze.cc;h=7115d06f2eada95bf8f38433bc3b0280c7dabb57;hb=19d7df5119c3f07370f58857f4d916cd5de398ea;hp=576b6a6b6037c4eac9b5e0ac21189583b9b44ec9;hpb=2674b74b067e8578bf323445a88f46bb3fa18ffd;p=m6w6%2Flibmemcached diff --git a/libmemcached/analyze.cc b/libmemcached/analyze.cc index 576b6a6b..7115d06f 100644 --- a/libmemcached/analyze.cc +++ b/libmemcached/analyze.cc @@ -42,7 +42,9 @@ static void calc_average_item_size(memcached_analysis_st *result, const uint64_t total_bytes) { if (total_items > 0 && total_bytes > 0) + { result->average_item_size= (uint32_t) (total_bytes / total_items); + } } static void calc_hit_ratio(memcached_analysis_st *result, @@ -65,19 +67,25 @@ memcached_analysis_st *memcached_analyze(memcached_st *memc, { uint64_t total_items= 0, total_bytes= 0; uint64_t total_get_cmds= 0, total_get_hits= 0; - uint32_t server_count; - if (not memc or not memc_stat) + if (memc == NULL or memc_stat == NULL) { return NULL; } + memcached_return_t not_used; + if (error == NULL) + { + error= ¬_used; + } + *error= MEMCACHED_SUCCESS; - server_count= memcached_server_count(memc); - memcached_analysis_st *result= (memcached_analysis_st*)calloc(memcached_server_count(memc), - sizeof(memcached_analysis_st)); + uint32_t server_count= memcached_server_count(memc); + memcached_analysis_st *result= (memcached_analysis_st*)libmemcached_xcalloc(memc, + memcached_server_count(memc), + memcached_analysis_st); - if (not result) + if (result == NULL) { *error= MEMCACHED_MEMORY_ALLOCATION_FAILURE; return NULL; @@ -107,5 +115,5 @@ memcached_analysis_st *memcached_analyze(memcached_st *memc, void memcached_analyze_free(memcached_analysis_st *ptr) { - free(ptr); + libmemcached_free(ptr->root, ptr); }