summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiguel Sofer <miguel.sofer@gmail.com>2001-11-20 16:36:05 (GMT)
committerMiguel Sofer <miguel.sofer@gmail.com>2001-11-20 16:36:05 (GMT)
commit1d3de91d2fdf641f74f27fe044bc30c4c8415a0a (patch)
tree93b0172a3be9ba5c965a233dbd7f2adbeb15c483
parentcc9ab9d07a41e1b6dacb17935cf3c504c7f37bd8 (diff)
downloadtcl-1d3de91d2fdf641f74f27fe044bc30c4c8415a0a.zip
tcl-1d3de91d2fdf641f74f27fe044bc30c4c8415a0a.tar.gz
tcl-1d3de91d2fdf641f74f27fe044bc30c4c8415a0a.tar.bz2
restoring the computations of iPtr->numLevels to the original logic (previous to buggy modifs on 2001-11-16).
-rw-r--r--ChangeLog8
-rw-r--r--generic/tclExecute.c7
-rw-r--r--generic/tclProc.c11
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 <msofer@users.sourceforge.net>
+
+ * 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 <jeffh@ActiveState.com>
* 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 <msofer@users.sourceforge.net>
+2001-11-19 Miguel Sofer <msofer@users.sourceforge.net>
* 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);