diff lwlib/lw_expr.c @ 200:348e2816ce32

Short ciruit some recursion in expression library
author William Astle <lost@l-w.ca>
date Fri, 16 Mar 2012 19:44:12 -0600
parents db5690682eb7
children 1f1a28b797e1
line wrap: on
line diff
--- a/lwlib/lw_expr.c	Fri Mar 16 17:29:53 2012 -0600
+++ b/lwlib/lw_expr.c	Fri Mar 16 19:44:12 2012 -0600
@@ -676,7 +676,8 @@
 	
 	// simplify operands
 	for (o = E -> operands; o; o = o -> next)
-		lw_expr_simplify_l(o -> p, priv);
+		if (o -> p -> type != lw_expr_type_int)
+			lw_expr_simplify_l(o -> p, priv);
 
 	for (o = E -> operands; o; o = o -> next)
 	{
@@ -1070,6 +1071,8 @@
 
 void lw_expr_simplify(lw_expr_t E, void *priv)
 {
+	if (E -> type == lw_expr_type_int)
+		return;
 	lw_expr_simplify_l(E, priv);
 }