X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Ftarget_scale.c;h=22af4e319d60af7db98e0a86790b3438dfe640b3;hb=958f7776a2daaa1a8664aded0a2c1d717c2f5909;hp=b29a02bfa64801d9e967294ba4d1af7e6ce0cb48;hpb=092e0c8763ef268918fb8117be9579d375ac8cfc;p=collectd.git diff --git a/src/target_scale.c b/src/target_scale.c index b29a02bf..22af4e31 100644 --- a/src/target_scale.c +++ b/src/target_scale.c @@ -25,6 +25,7 @@ **/ #include "collectd.h" + #include "common.h" #include "filter_chain.h" @@ -89,22 +90,11 @@ static int ts_invoke_counter (const data_set_t *ds, value_list_t *vl, /* {{{ */ if (failure == 0) { - uint64_t difference; + uint64_t diff; double rate; - /* Calcualte the rate */ - if (prev_counter > curr_counter) /* => counter overflow */ - { - if (prev_counter <= 4294967295UL) /* 32 bit overflow */ - difference = (4294967295UL - prev_counter) + curr_counter; - else /* 64 bit overflow */ - difference = (18446744073709551615ULL - prev_counter) + curr_counter; - } - else /* no overflow */ - { - difference = curr_counter - prev_counter; - } - rate = ((double) difference) / CDTIME_T_TO_DOUBLE (vl->interval); + diff = (uint64_t) counter_diff (prev_counter, curr_counter); + rate = ((double) diff) / CDTIME_T_TO_DOUBLE (vl->interval); /* Modify the rate. */ if (!isnan (data->factor)) @@ -114,9 +104,9 @@ static int ts_invoke_counter (const data_set_t *ds, value_list_t *vl, /* {{{ */ /* Calculate the internal counter. */ int_fraction += (rate * CDTIME_T_TO_DOUBLE (vl->interval)); - difference = (uint64_t) int_fraction; - int_fraction -= ((double) difference); - int_counter += difference; + diff = (uint64_t) int_fraction; + int_fraction -= ((double) diff); + int_counter += diff; assert (int_fraction >= 0.0); assert (int_fraction < 1.0); @@ -313,7 +303,6 @@ static int ts_config_add_data_source(ts_data_t *data, /* {{{ */ { size_t new_data_sources_num; char **temp; - int i; /* Check number of arbuments. */ if (ci->values_num < 1) @@ -324,7 +313,7 @@ static int ts_config_add_data_source(ts_data_t *data, /* {{{ */ } /* Check type of arguments */ - for (i = 0; i < ci->values_num; i++) + for (int i = 0; i < ci->values_num; i++) { if (ci->values[i].type == OCONFIG_TYPE_STRING) continue; @@ -339,7 +328,7 @@ static int ts_config_add_data_source(ts_data_t *data, /* {{{ */ /* Allocate space for the char pointers */ new_data_sources_num = data->data_sources_num + ((size_t) ci->values_num); - temp = (char **) realloc (data->data_sources, + temp = realloc (data->data_sources, new_data_sources_num * sizeof (char *)); if (temp == NULL) { @@ -349,7 +338,7 @@ static int ts_config_add_data_source(ts_data_t *data, /* {{{ */ data->data_sources = temp; /* Copy the strings, allocating memory as needed. */ - for (i = 0; i < ci->values_num; i++) + for (int i = 0; i < ci->values_num; i++) { size_t j; @@ -380,8 +369,7 @@ static int ts_destroy (void **user_data) /* {{{ */ if ((data != NULL) && (data->data_sources != NULL)) { - size_t i; - for (i = 0; i < data->data_sources_num; i++) + for (size_t i = 0; i < data->data_sources_num; i++) sfree (data->data_sources[i]); sfree (data->data_sources); } @@ -396,21 +384,19 @@ static int ts_create (const oconfig_item_t *ci, void **user_data) /* {{{ */ { ts_data_t *data; int status; - int i; - data = (ts_data_t *) malloc (sizeof (*data)); + data = calloc (1, sizeof (*data)); if (data == NULL) { - ERROR ("ts_create: malloc failed."); + ERROR ("ts_create: calloc failed."); return (-ENOMEM); } - memset (data, 0, sizeof (*data)); data->factor = NAN; data->offset = NAN; status = 0; - for (i = 0; i < ci->children_num; i++) + for (int i = 0; i < ci->children_num; i++) { oconfig_item_t *child = ci->children + i; @@ -458,7 +444,6 @@ static int ts_invoke (const data_set_t *ds, value_list_t *vl, /* {{{ */ notification_meta_t __attribute__((unused)) **meta, void **user_data) { ts_data_t *data; - int i; if ((ds == NULL) || (vl == NULL) || (user_data == NULL)) return (-EINVAL); @@ -470,7 +455,7 @@ static int ts_invoke (const data_set_t *ds, value_list_t *vl, /* {{{ */ return (-EINVAL); } - for (i = 0; i < ds->ds_num; i++) + for (size_t i = 0; i < ds->ds_num; i++) { /* If we've got a list of data sources, is it in the list? */ if (data->data_sources) { @@ -502,9 +487,8 @@ static int ts_invoke (const data_set_t *ds, value_list_t *vl, /* {{{ */ void module_register (void) { - target_proc_t tproc; + target_proc_t tproc = { 0 }; - memset (&tproc, 0, sizeof (tproc)); tproc.create = ts_create; tproc.destroy = ts_destroy; tproc.invoke = ts_invoke;