diff --git a/src/libs/zbxcachehistory/cachehistory.c b/src/libs/zbxcachehistory/cachehistory.c index b499d0d72c0..db20043c490 100644 --- a/src/libs/zbxcachehistory/cachehistory.c +++ b/src/libs/zbxcachehistory/cachehistory.c @@ -523,22 +523,19 @@ static void dc_remove_updated_trends(ZBX_DC_TREND *trends, int trends_num, const * Purpose: helper function for DCflush trends * * * ******************************************************************************/ -static void dc_trends_update_float(ZBX_DC_TREND *trend, zbx_db_row_t row, int num) +static void dc_trends_update_float(ZBX_DC_TREND *trend, const zbx_db_row_t row, int num) { - zbx_history_value_t value_min, value_avg, value_max; - double max_val, scaled_avg, scaled_avg2; - - value_min.dbl = atof(row[2]); - value_avg.dbl = atof(row[3]); - value_max.dbl = atof(row[4]); + double value_min = atof(row[2]); + double value_avg = atof(row[3]); + double value_max = atof(row[4]); - if (value_min.dbl < trend->value_min.dbl) - trend->value_min.dbl = value_min.dbl; + if (value_min < trend->value_min.dbl) + trend->value_min.dbl = value_min; - if (value_max.dbl > trend->value_max.dbl) - trend->value_max.dbl = value_max.dbl; + if (value_max > trend->value_max.dbl) + trend->value_max.dbl = value_max; - max_val = fmax(fabs(trend->value_avg.dbl), fabs(value_avg.dbl)); + double max_val = fmax(fabs(trend->value_avg.dbl), fabs(value_avg)); if (0.0 == max_val) { @@ -546,8 +543,8 @@ static void dc_trends_update_float(ZBX_DC_TREND *trend, zbx_db_row_t row, int nu } else { - scaled_avg = trend->value_avg.dbl / max_val; - scaled_avg2 = value_avg.dbl / max_val; + double scaled_avg = trend->value_avg.dbl / max_val; + double scaled_avg2 = value_avg / max_val; trend->value_avg.dbl = (scaled_avg * trend->num + scaled_avg2 * num) / (trend->num + num) * max_val; }