summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
Diffstat (limited to 'generic')
-rw-r--r--generic/tclExecute.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 726c024..fcb1322 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.180 2005/04/09 21:12:36 msofer Exp $
+ * RCS: @(#) $Id: tclExecute.c,v 1.181 2005/04/09 21:14:22 msofer Exp $
*/
#include "tclInt.h"
@@ -5061,6 +5061,12 @@ TclExecuteByteCode(interp, codePtr)
abnormalReturn:
{
+ Tcl_Obj **initTosPtr = eePtr->stackPtr + initStackTop;
+ while (tosPtr > initTosPtr) {
+ Tcl_Obj *objPtr = POP_OBJECT();
+ TclDecrRefCount(objPtr);
+ }
+
/*
* Clear all expansions.
*/
@@ -5070,11 +5076,6 @@ TclExecuteByteCode(interp, codePtr)
TclDecrRefCount(expandNestList);
expandNestList = objPtr;
}
- Tcl_Obj **initTosPtr = eePtr->stackPtr + initStackTop;
- while (tosPtr > initTosPtr) {
- 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",
(unsigned int)(pc - codePtr->codeStart),