From c20146ce03e14bc02f55dc68b328fad4be6cfde4 Mon Sep 17 00:00:00 2001 From: kichik Date: Thu, 24 Nov 2005 19:25:50 +0000 Subject: [PATCH] fixed bug #1235875 - only increment initial array length when actually adding items - if array index equals array count, the count should also be raised git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4419 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/Math/Source/Math.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Contrib/Math/Source/Math.c b/Contrib/Math/Source/Math.c index bbb3113e..376a04f6 100644 --- a/Contrib/Math/Source/Math.c +++ b/Contrib/Math/Source/Math.c @@ -509,7 +509,9 @@ void ParseString(char *&sp, ExpressionItem* &itemplace) while (*sp != '}') { sp++; - ParseString(sp, ad->array[ad->count++]); + ParseString(sp, ad->array[ad->count]); + if (ad->array[ad->count]) + ad->count++; } sp++; @@ -1438,7 +1440,7 @@ void RunTree(ExpressionItem *from, ExpressionItem* &result, int options) aritem->param2 = (EIPARAM) *((__int64*)&(index->param1)); ArrayDesc *ad = (ArrayDesc*)aritem->param1; - if (((int)aritem->param2) > ad->count) + if (((int)aritem->param2) >= ad->count) { ad->count = ((int)aritem->param2)+1; while (ad->count > ad->size)