From 1d3de91d2fdf641f74f27fe044bc30c4c8415a0a Mon Sep 17 00:00:00 2001 From: Miguel Sofer Date: Tue, 20 Nov 2001 16:36:05 +0000 Subject: restoring the computations of iPtr->numLevels to the original logic (previous to buggy modifs on 2001-11-16). --- ChangeLog | 8 +++++++- generic/tclExecute.c | 7 +++++-- generic/tclProc.c | 11 +---------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 93cb8ef..65cee05 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2001-11-20 Miguel Sofer + + * generic/tclExecute.c: + * generic/tclProc.c: restoring the computations of iPtr->numLevels + to the original logic (previous to buggy modifs on 2001-11-16). + 2001-11-20 Jeff Hobbs * unix/tclUnixInit.c (TclpSetInitialEncodings): update of patch @@ -73,7 +79,7 @@ TclDeleteVars, TclDeleteCompiledLocalVars, DeleteArray, TclVarTraceExists): Support for those new trace flags. -2001-11-16 Miguel Sofer +2001-11-19 Miguel Sofer * generic/tclCompCmds.c: patch for [Bug 483309] (petasis). diff --git a/generic/tclExecute.c b/generic/tclExecute.c index c8efbce..227cbca 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.37 2001/11/16 20:14:27 msofer Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.38 2001/11/20 16:36:06 msofer Exp $ */ #include "tclInt.h" @@ -793,12 +793,15 @@ TclExecuteByteCode(interp, codePtr) preservedStack = stackPtr; /* - * Finally, let TclEvalObjvInternal handle the command. + * Finally, let TclEvalObjvInternal handle the command. As it + * will increase the numLevels, decrease them here to compensate. */ + iPtr->numLevels--; DECACHE_STACK_INFO(); result = TclEvalObjvInternal(interp, objc, objv, bytes, length, 0); CACHE_STACK_INFO(); + iPtr->numLevels++; /* * If the old stack is going to be released, it is diff --git a/generic/tclProc.c b/generic/tclProc.c index 7d269a6..97e2512 100644 --- a/generic/tclProc.c +++ b/generic/tclProc.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclProc.c,v 1.32 2001/11/16 20:01:04 msofer Exp $ + * RCS: @(#) $Id: tclProc.c,v 1.33 2001/11/20 16:36:07 msofer Exp $ */ #include "tclInt.h" @@ -1069,18 +1069,9 @@ TclObjInterpProc(clientData, interp, objc, objv) } #endif /*TCL_COMPILE_DEBUG*/ - /* - * Tcl_EvalObjEx will increase the level count again while evaluating - * the body, resulting in a total level increase of 2; correct this - * behaviour before evaling the body, restore afterwards. - */ - - iPtr->numLevels--; - iPtr->returnCode = TCL_OK; procPtr->refCount++; result = Tcl_EvalObjEx(interp, procPtr->bodyPtr, 0); - iPtr->numLevels++; procPtr->refCount--; if (procPtr->refCount <= 0) { TclProcCleanupProc(procPtr); -- cgit v0.12