summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
Diffstat (limited to 'generic')
-rw-r--r--generic/tclExecute.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 7f90890..726c024 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclExecute.c,v 1.179 2005/04/05 16:56:26 dgp Exp $
+ * RCS: @(#) $Id: tclExecute.c,v 1.180 2005/04/09 21:12:36 msofer Exp $
*/
#include "tclInt.h"
@@ -5061,10 +5061,19 @@ TclExecuteByteCode(interp, codePtr)
abnormalReturn:
{
+ /*
+ * Clear all expansions.
+ */
+
+ while (expandNestList) {
+ Tcl_Obj *objPtr = expandNestList->internalRep.twoPtrValue.ptr2;
+ TclDecrRefCount(expandNestList);
+ expandNestList = objPtr;
+ }
Tcl_Obj **initTosPtr = eePtr->stackPtr + initStackTop;
while (tosPtr > initTosPtr) {
- valuePtr = POP_OBJECT();
- TclDecrRefCount(valuePtr);
+ Tcl_Obj *objPtr = POP_OBJECT();
+ TclDecrRefCount(objPtr);
}
if (tosPtr < initTosPtr) {
fprintf(stderr, "\nTclExecuteByteCode: abnormal return at pc %u: stack top %d < entry stack top %d\n",