diff --git a/src/las.c b/src/las.c index be532e26da2a72c7cbc9fe21b9276bd726976596..db30eae4ab3467c87d1e4938c18fb85556d005ed 100644 --- a/src/las.c +++ b/src/las.c @@ -5,7 +5,7 @@ \*/ /**/ #include "global.h" -RCSID("$Id: las.c,v 1.216 2000/09/26 22:19:03 hubbe Exp $"); +RCSID("$Id: las.c,v 1.217 2000/09/28 16:26:01 grubba Exp $"); #include "language.h" #include "interpret.h" @@ -4193,13 +4193,14 @@ static void optimize(node *n) tmp1 = freeze_node(n); if (tmp1 != n) { /* n was a duplicate node. Use the original. */ + /* Make sure the original isn't defrosted too. */ + tmp1->node_info &= ~OPT_DEFROSTED; goto use_tmp1; } /* Remove the extra ref from n */ free_node(n); -#else /* IN_TPIKE */ - n->node_info &= ~OPT_DEFROSTED; #endif /* !IN_TPIKE */ + n->node_info &= ~OPT_DEFROSTED; if (n->node_info & OPT_OPTIMIZED) { /* No need to check this node any more. */ n = n->parent;