From: oetiker Date: Sat, 31 May 2008 12:28:11 +0000 (+0000) Subject: make sure vdef calcs only calc as far as originally requested. X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=commitdiff_plain;h=ec77533a4e1733a0af80ecdcec57543da8b24393 make sure vdef calcs only calc as far as originally requested. git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1386 a5681a0c-68f1-0310-ab6d-d61299d08faa --- diff --git a/src/rrd_graph.c b/src/rrd_graph.c index 480041f..760e3a3 100644 --- a/src/rrd_graph.c +++ b/src/rrd_graph.c @@ -4510,15 +4510,18 @@ int vdef_calc( graph_desc_t *src, *dst; rrd_value_t *data; long step, steps; + unsigned long end; dst = &im->gdes[gdi]; src = &im->gdes[dst->vidx]; data = src->data + src->ds; - steps = (src->end - src->start) / src->step; + end = src->end_orig % src->step == 0 ? src->end_orig : (src->end_orig + src->step - src->end_orig % src->step); + + steps = (end - src->start) / src->step; #if 0 printf ("DEBUG: start == %lu, end == %lu, %lu steps\n", - src->start, src->end, steps); + src->start, src->end_orig, steps); #endif switch (dst->vf.op) { case VDEF_PERCENT:{