From 8f2fa4917c6f0470dd769cc1cff6a0e4410eb945 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Tue, 3 Oct 2000 15:42:44 +0200
Subject: [PATCH] Bugfix in optimize_binary().

Rev: src/operators.c:1.108
---
 src/operators.c | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

diff --git a/src/operators.c b/src/operators.c
index 8d5e7ce075..247669a40e 100644
--- a/src/operators.c
+++ b/src/operators.c
@@ -6,7 +6,7 @@
 /**/
 #include "global.h"
 #include <math.h>
-RCSID("$Id: operators.c,v 1.107 2000/09/26 10:04:33 hedda Exp $");
+RCSID("$Id: operators.c,v 1.108 2000/10/03 13:42:44 grubba Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "multiset.h"
@@ -594,14 +594,15 @@ static node *optimize_binary(node *n)
 	 CAR(*first_arg)->token == F_CONSTANT &&
 	 is_eq(& CAR(*first_arg)->u.sval, & CAR(n)->u.sval))
       {
-	ret=mknode(F_APPLY,
-		   CAR(n),
-		   mknode(F_ARG_LIST,
-			  CDR(*first_arg),
-			  *second_arg));
-	ADD_NODE_REF(CAR(n));
-	ADD_NODE_REF(CDR(*first_arg));
-	ADD_NODE_REF(*second_arg);
+	ADD_NODE_REF2(CAR(n),
+	ADD_NODE_REF2(CDR(*first_arg),
+	ADD_NODE_REF2(*second_arg,
+		      ret = mknode(F_APPLY,
+				   CAR(n),
+				   mknode(F_ARG_LIST,
+					  CDR(*first_arg),
+					  *second_arg))
+	)));
 	return ret;
       }
       
@@ -609,14 +610,15 @@ static node *optimize_binary(node *n)
 	 CAR(*second_arg)->token == F_CONSTANT &&
 	 is_eq(& CAR(*second_arg)->u.sval, & CAR(n)->u.sval))
       {
-	ret=mknode(F_APPLY,
-		   CAR(n),
-		   mknode(F_ARG_LIST,
-			  *first_arg,
-			  CDR(*second_arg)));
-	ADD_NODE_REF(CAR(n));
-	ADD_NODE_REF(*first_arg);
-	ADD_NODE_REF(CDR(*second_arg));
+	ADD_NODE_REF2(CAR(n),
+	ADD_NODE_REF2(*first_arg,
+	ADD_NODE_REF2(CDR(*second_arg),
+		      ret = mknode(F_APPLY,
+				   CAR(n),
+				   mknode(F_ARG_LIST,
+					  *first_arg,
+					  CDR(*second_arg)))
+	)));
 	return ret;
       }
     }
-- 
GitLab