From f7bc88de0e53b6ba8710bd7b8c269289a2d16863 Mon Sep 17 00:00:00 2001 From: dgp Date: Tue, 5 Oct 2004 16:22:31 +0000 Subject: * generic/tclNamesp.c (Tcl_PopCallFrame): Removed Bug 1038021 workaround. That bug is now fixed. --- ChangeLog | 7 ++++++- generic/tclNamesp.c | 20 +------------------- 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 + + * generic/tclNamesp.c (Tcl_PopCallFrame): Removed Bug 1038021 + workaround. That bug is now fixed. + 2004-09-30 Don Porter * 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 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, -- cgit v0.12