diff directive.c @ 39:337110e7240a

Pass the size to free; it makes debug checking easier.
author David A. Holland
date Sat, 30 Mar 2013 21:17:47 -0400
parents b156910b59b2
children 8a204d153398
line wrap: on
line diff
--- a/directive.c	Sat Mar 30 21:02:25 2013 -0400
+++ b/directive.c	Sat Mar 30 21:17:47 2013 -0400
@@ -94,7 +94,7 @@
 void
 ifstate_destroy(struct ifstate *is)
 {
-	dofree(is);
+	dofree(is, sizeof(*is));
 }
 
 static
@@ -126,7 +126,7 @@
 	expr = macroexpand(p2, line, len, true);
 	val = eval(&p3, expr);
 	ifstate_push(p, val);
-	dofree(expr);
+	dostrfree(expr);
 }
 
 static
@@ -163,7 +163,7 @@
 		expr = macroexpand(p2, line, len, true);
 		ifstate->curtrue = eval(&p3, expr);
 		ifstate->evertrue = ifstate->curtrue;
-		dofree(expr);
+		dostrfree(expr);
 	}
 }
 
@@ -298,10 +298,10 @@
 	}
 	text = macroexpand(p2, line, len, false);
 	if (tryinclude(p, text, strlen(text))) {
-		dofree(text);
+		dostrfree(text);
 		return;
 	}
-	dofree(text);
+	dostrfree(text);
 	complain(p, "Illegal #include directive");
 	complain_fail();
 }
@@ -328,7 +328,7 @@
 	if (mode.werror) {
 		complain_fail();
 	}
-	dofree(msg);
+	dostrfree(msg);
 }
 
 static
@@ -340,7 +340,7 @@
 	msg = macroexpand(p2, line, len, false);
 	complain(p, "#error: %s", msg);
 	complain_fail();
-	dofree(msg);
+	dostrfree(msg);
 }
 
 ////////////////////////////////////////////////////////////