From 97f74cddc8704cd7c70a4f0e34dfaed1f1ddbfed Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 5 Sep 2002 20:21:05 +0000 Subject: * generic/tclVar.c (TclDeleteVars): Corrected logic for setting the TCL_INTERP_DESTROYED flag when calling variable traces. [Tk Bug 605121] --- ChangeLog | 5 +++++ generic/tclVar.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index d49c675..b537216 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-09-05 Don Porter + + * 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 * 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)) { -- cgit v0.12