]> granicus.if.org Git - yasm/commitdiff
Separate decrement and nasm_free() call; with dmalloc enabled, nasm_free()
authorPeter Johnson <peter@tortall.net>
Thu, 2 Oct 2003 03:53:53 +0000 (03:53 -0000)
committerPeter Johnson <peter@tortall.net>
Thu, 2 Oct 2003 03:53:53 +0000 (03:53 -0000)
is a macro (in the yasm version) that uses the passed pointer twice.

svn path=/trunk/yasm/; revision=1057

modules/preprocs/nasm/nasm-eval.c

index eb1cea83eb46eddcca52f6f10de05093856714a2..333af29763547283010859bbd05ea67d5c140ae7 100644 (file)
@@ -52,8 +52,10 @@ static long abs_offset = 0;          /* ABSOLUTE segment offset */
  */
 void nasm_eval_cleanup(void) 
 {
-    while (ntempexprs)
-       nasm_free (tempexprs[--ntempexprs]);
+    while (ntempexprs) {
+       ntempexprs--;
+       nasm_free (tempexprs[ntempexprs]);
+    }
     nasm_free (tempexprs);
 }
 
@@ -782,8 +784,10 @@ nasm_expr *nasm_evaluate (scanner sc, void *scprivate, struct tokenval *tv,
     else
        i = tokval->t_type;
 
-    while (ntempexprs)                /* initialise temporary storage */
-       nasm_free (tempexprs[--ntempexprs]);
+    while (ntempexprs) {              /* initialise temporary storage */
+       ntempexprs--;
+       nasm_free (tempexprs[ntempexprs]);
+    }
 
     e = bexpr (critical);
     if (!e)