summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2004-10-05 16:22:31 (GMT)
committerdgp <dgp@users.sourceforge.net>2004-10-05 16:22:31 (GMT)
commitf7bc88de0e53b6ba8710bd7b8c269289a2d16863 (patch)
treec39c6a2977f9c0947074dc00c5bbf117fa89e413
parentac03c78e140b0ffc165c5c3d2c3dc6c589561363 (diff)
downloadtcl-f7bc88de0e53b6ba8710bd7b8c269289a2d16863.zip
tcl-f7bc88de0e53b6ba8710bd7b8c269289a2d16863.tar.gz
tcl-f7bc88de0e53b6ba8710bd7b8c269289a2d16863.tar.bz2
* generic/tclNamesp.c (Tcl_PopCallFrame): Removed Bug 1038021
workaround. That bug is now fixed.
-rw-r--r--ChangeLog7
-rw-r--r--generic/tclNamesp.c20
2 files changed, 7 insertions, 20 deletions
diff --git a/ChangeLog b/ChangeLog
index 48e967d..ad735f0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-10-05 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclNamesp.c (Tcl_PopCallFrame): Removed Bug 1038021
+ workaround. That bug is now fixed.
+
2004-09-30 Don Porter <dgp@users.sourceforge.net>
* generic/tclNamespace.c (TclTeardownNamespace): Tcl_Obj-ified
@@ -12,7 +17,7 @@
* generic/tclVar.c (CallVarTraces): Save/restore the flag
* tests/var.test (var-16.1): values that define part of the
- interpreter state during variable traces. [Bug 10381021].
+ interpreter state during variable traces. [Bug 1038021].
2004-09-30 Miguel Sofer <msofer@users.sf.net>
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c
index d319100..55e92af 100644
--- a/generic/tclNamesp.c
+++ b/generic/tclNamesp.c
@@ -19,7 +19,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclNamesp.c,v 1.31.2.5 2004/09/30 22:45:14 dgp Exp $
+ * RCS: @(#) $Id: tclNamesp.c,v 1.31.2.6 2004/10/05 16:22:34 dgp Exp $
*/
#include "tclInt.h"
@@ -351,7 +351,6 @@ Tcl_PopCallFrame(interp)
{
register Interp *iPtr = (Interp *) interp;
register CallFrame *framePtr = iPtr->framePtr;
- int saveErrFlag;
Namespace *nsPtr;
/*
@@ -364,21 +363,6 @@ Tcl_PopCallFrame(interp)
iPtr->framePtr = framePtr->callerPtr;
iPtr->varFramePtr = framePtr->callerVarPtr;
- /*
- * Delete the local variables. As a hack, we save then restore the
- * ERR_IN_PROGRESS flag in the interpreter. The problem is that there
- * could be unset traces on the variables, which cause scripts to be
- * evaluated. This will clear the ERR_IN_PROGRESS flag, losing stack
- * trace information if the procedure was exiting with an error. The
- * code below preserves the flag. Unfortunately, that isn't really
- * enough: we really should preserve the errorInfo variable too
- * (otherwise a nested error in the trace script will trash errorInfo).
- * What's really needed is a general-purpose mechanism for saving and
- * restoring interpreter state.
- */
-
- saveErrFlag = (iPtr->flags & ERR_IN_PROGRESS);
-
if (framePtr->varTablePtr != NULL) {
TclDeleteVars(iPtr, framePtr->varTablePtr);
ckfree((char *) framePtr->varTablePtr);
@@ -388,8 +372,6 @@ Tcl_PopCallFrame(interp)
TclDeleteCompiledLocalVars(iPtr, framePtr);
}
- iPtr->flags |= saveErrFlag;
-
/*
* Decrement the namespace's count of active call frames. If the
* namespace is "dying" and there are no more active call frames,