diff options
author | dgp <dgp@users.sourceforge.net> | 2004-10-05 15:45:00 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2004-10-05 15:45:00 (GMT) |
commit | 0b585ef4a5d2e04d13e842a60643b6fd074572cd (patch) | |
tree | 19a81b5f3aa3e5b66cbbcbdced419f82a7f80cfa | |
parent | 54af15ebd7bbd1a3dcdac1fcd0103c74be2ff12f (diff) | |
download | tcl-0b585ef4a5d2e04d13e842a60643b6fd074572cd.zip tcl-0b585ef4a5d2e04d13e842a60643b6fd074572cd.tar.gz tcl-0b585ef4a5d2e04d13e842a60643b6fd074572cd.tar.bz2 |
* generic/tclNamesp.c (Tcl_PopCallFrame): Removed Bug 1038021
workaround. That bug is now fixed.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | generic/tclNamesp.c | 19 |
2 files changed, 7 insertions, 19 deletions
@@ -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-10-04 Kevin B. Kenny <kennykb@acm.org> * tests/clock.test (clock-34.*): Removed an antibug that forced @@ -66,7 +71,7 @@ * generic/tclTrace.c (TclCallVarTraces): 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 9c7e7c2..f75e3ec 100644 --- a/generic/tclNamesp.c +++ b/generic/tclNamesp.c @@ -21,7 +21,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.57 2004/09/30 23:06:48 dgp Exp $ + * RCS: @(#) $Id: tclNamesp.c,v 1.58 2004/10/05 15:45:02 dgp Exp $ */ #include "tclInt.h" @@ -490,21 +490,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); @@ -514,8 +499,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, |