- 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
This commit is contained in:
kichik 2005-11-24 19:25:50 +00:00
parent dd9f82b4de
commit c20146ce03

View file

@ -509,7 +509,9 @@ void ParseString(char *&sp, ExpressionItem* &itemplace)
while (*sp != '}') while (*sp != '}')
{ {
sp++; sp++;
ParseString(sp, ad->array[ad->count++]); ParseString(sp, ad->array[ad->count]);
if (ad->array[ad->count])
ad->count++;
} }
sp++; sp++;
@ -1438,7 +1440,7 @@ void RunTree(ExpressionItem *from, ExpressionItem* &result, int options)
aritem->param2 = (EIPARAM) *((__int64*)&(index->param1)); aritem->param2 = (EIPARAM) *((__int64*)&(index->param1));
ArrayDesc *ad = (ArrayDesc*)aritem->param1; ArrayDesc *ad = (ArrayDesc*)aritem->param1;
if (((int)aritem->param2) > ad->count) if (((int)aritem->param2) >= ad->count)
{ {
ad->count = ((int)aritem->param2)+1; ad->count = ((int)aritem->param2)+1;
while (ad->count > ad->size) while (ad->count > ad->size)