diff src/pt-colon.h @ 2990:35bd1b05cfbe

[project @ 1997-05-16 09:19:11 by jwe]
author jwe
date Fri, 16 May 1997 09:19:12 +0000
parents daa1ed1f5462
children b80bbb43a1a9
line wrap: on
line diff
--- a/src/pt-colon.h
+++ b/src/pt-colon.h
@@ -45,18 +45,24 @@
 public:
 
   tree_colon_expression (int l = -1, int c = -1)
-    : tree_expression (l, c), op_base (0), op_limit (0), op_increment (0) { }
+    : tree_expression (l, c), op_base (0), op_limit (0),
+      op_increment (0), save_base (false) { }
 
   tree_colon_expression (tree_expression *e, int l = -1, int c = -1)
-    : tree_expression (l, c), op_base (e), op_limit (0), op_increment (0) { }
+    : tree_expression (l, c), op_base (e), op_limit (0),
+      op_increment (0), save_base (false) { }
 
   ~tree_colon_expression (void)
     {
-      delete op_base;
+      if (! save_base)
+	delete op_base;
+
       delete op_limit;
       delete op_increment;
     }
 
+  void preserve_base (void) { save_base = true; }
+
   tree_colon_expression *append (tree_expression *t);
 
   bool rvalue_ok (void) const
@@ -83,6 +89,8 @@
   tree_expression *op_limit;
   tree_expression *op_increment;
 
+  bool save_base;
+
   // No copying!
 
   tree_colon_expression (const tree_colon_expression&);