From 2b1129bf5dc42fc2d23b171e37f67f8e8c86a65b Mon Sep 17 00:00:00 2001 From: Daniil Medvedev <medvdanil@gmail.com> Date: Thu, 27 Aug 2015 16:31:09 +0300 Subject: [PATCH] push of uncommited bugfix in rmean from other branch --- src/rmean.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/rmean.cc b/src/rmean.cc index b16c20a78b..86470baeb3 100644 --- a/src/rmean.cc +++ b/src/rmean.cc @@ -38,6 +38,8 @@ void rmean_collect(struct rmean *rmean, size_t name, int64_t value) { + assert(name < rmean->stats_n); + rmean->stats[name].value[0] += value; rmean->stats[name].total += value; } @@ -96,10 +98,10 @@ struct rmean * rmean_new(const char **name, size_t n) { struct rmean *rmean = (struct rmean *) realloc(NULL, - sizeof(rmean) + sizeof(stats) * (n + 1)); + sizeof(struct rmean) + sizeof(struct stats) * n); if (rmean == NULL) return NULL; - memset(rmean, 0, sizeof(rmean) + sizeof(stats) * n); + memset(rmean, 0, sizeof(struct rmean) + sizeof(struct stats) * n); rmean->stats_n = n; rmean->timer.data = (void *)rmean; ev_timer_init(&rmean->timer, rmean_age, 0, 1.); @@ -116,10 +118,10 @@ rmean_new(const char **name, size_t n) void rmean_delete(struct rmean *rmean) { - if (rmean) { - ev_timer_stop(loop(), &rmean->timer); - free(rmean); - } + + ev_timer_stop(loop(), &rmean->timer); + free(rmean); + rmean = 0; } void -- GitLab