diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | generic/tclVar.c | 7 |
2 files changed, 10 insertions, 2 deletions
@@ -1,3 +1,8 @@ +2002-09-05 Don Porter <dgp@users.sourceforge.net> + + * generic/tclVar.c (TclDeleteVars): Corrected logic for setting the + TCL_INTERP_DESTROYED flag when calling variable traces. [Tk Bug 605121] + 2002-09-04 Miguel Sofer <msofer@users.sourceforge.net> * generic/tclVar.c (DeleteArray): leak plug [Bug 604239]. Thanks diff --git a/generic/tclVar.c b/generic/tclVar.c index 9854161..0143b2f 100644 --- a/generic/tclVar.c +++ b/generic/tclVar.c @@ -15,7 +15,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclVar.c,v 1.66 2002/09/04 15:18:53 msofer Exp $ + * RCS: @(#) $Id: tclVar.c,v 1.67 2002/09/05 20:21:06 dgp Exp $ */ #include "tclInt.h" @@ -4506,10 +4506,13 @@ TclDeleteVars(iPtr, tablePtr) flags = TCL_TRACE_UNSETS; if (tablePtr == &iPtr->globalNsPtr->varTable) { - flags |= (TCL_INTERP_DESTROYED | TCL_GLOBAL_ONLY); + flags |= TCL_GLOBAL_ONLY; } else if (tablePtr == &currNsPtr->varTable) { flags |= TCL_NAMESPACE_ONLY; } + if (Tcl_InterpDeleted(interp)) { + flags |= TCL_INTERP_DESTROYED; + } for (hPtr = Tcl_FirstHashEntry(tablePtr, &search); hPtr != NULL; hPtr = Tcl_NextHashEntry(&search)) { |