From 840da801fb30f021d43447301f7094544878a7f2 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Wed, 13 Jan 2016 20:58:58 -0500 Subject: [PATCH] std/filters: arr wrap on capacity not length --- src/std/filters/arr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/std/filters/arr.c b/src/std/filters/arr.c index b872cd623..9d09c9f4c 100644 --- a/src/std/filters/arr.c +++ b/src/std/filters/arr.c @@ -95,7 +95,7 @@ static db_field_log* filter(void* pvt, dbChannel *chan, db_field_log *pfl) { long end = my->end; long nTarget = 0; long offset = 0; - long nSource = chan->addr.no_elements; + long nSource = chan->addr.no_elements, maxSource = nSource; /* Only array data */ if (pfl->type == dbfl_type_val) { @@ -126,7 +126,7 @@ static db_field_log* filter(void* pvt, dbChannel *chan, db_field_log *pfl) { pfl->u.r.dtor = freeArray; pfl->u.r.pvt = my->arrayFreeList; offset = (offset + start) % chan->addr.no_elements; - dbExtractArrayFromRec(&chan->addr, pdst, nTarget, nSource, offset, my->incr); + dbExtractArrayFromRec(&chan->addr, pdst, nTarget, maxSource, offset, my->incr); pfl->u.r.field = pdst; } }