sourcepawn/compiler/sc3.c
changeset 65 eaa4964fd916
parent 64 cc302adaac00
child 66 97899d3a3f01
     1.1 --- a/sourcepawn/compiler/sc3.c	Thu Sep 14 05:34:02 2006 +0000
     1.2 +++ b/sourcepawn/compiler/sc3.c	Thu Sep 14 07:02:02 2006 +0000
     1.3 @@ -1165,7 +1165,7 @@
     1.4    }
     1.5    free(heap);
     1.6    if (total)
     1.7 -    setheap_save(total);
     1.8 +    setheap_save(-total*sizeof(cell));
     1.9  }
    1.10  
    1.11  static int hier13(value *lval)
    1.12 @@ -1193,11 +1193,11 @@
    1.13      if (lval->ident==iCONSTEXPR)        /* load constant here */
    1.14        ldconst(lval->constval,sPRI);
    1.15      sc_allowtags=(short)POPSTK_I();     /* restore */
    1.16 -    jumplabel(flab2);
    1.17 -    setlabel(flab1);
    1.18      heap=popsaveheaplist();
    1.19      dynarray_from_heaplist(heap);
    1.20      pushheaplist();
    1.21 +    jumplabel(flab2);
    1.22 +    setlabel(flab1);
    1.23      needtoken(':');
    1.24      if (hier13(&lval2))
    1.25        rvalue(&lval2);
    1.26 @@ -1215,9 +1215,9 @@
    1.27      /* ??? if both are arrays, should check dimensions */
    1.28      if (!matchtag(lval->tag,lval2.tag,FALSE))
    1.29        error(213);               /* tagname mismatch ('true' and 'false' expressions) */
    1.30 -    setlabel(flab2);
    1.31      heap=popsaveheaplist();
    1.32      dynarray_from_heaplist(heap);
    1.33 +    setlabel(flab2);
    1.34  	if (array1 && array2) {
    1.35        markheap(HEAPUSE_DYNAMIC, 0);
    1.36  	}