diff options
author | dgp <dgp@users.sourceforge.net> | 2004-10-05 16:22:31 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2004-10-05 16:22:31 (GMT) |
commit | 792219dd1d7b76c164d0ea2c417486d257300304 (patch) | |
tree | c39c6a2977f9c0947074dc00c5bbf117fa89e413 | |
parent | d6413b42a9a474bfa3ed2987ace04c858d3ed986 (diff) | |
download | tcl-792219dd1d7b76c164d0ea2c417486d257300304.zip tcl-792219dd1d7b76c164d0ea2c417486d257300304.tar.gz tcl-792219dd1d7b76c164d0ea2c417486d257300304.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 | 20 |
2 files changed, 7 insertions, 20 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-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, |