summaryrefslogtreecommitdiffstats
path: root/generic/tclBasic.c
diff options
context:
space:
mode:
authorMiguel Sofer <miguel.sofer@gmail.com>2004-07-08 18:46:02 (GMT)
committerMiguel Sofer <miguel.sofer@gmail.com>2004-07-08 18:46:02 (GMT)
commit5f7664fb28c03bce899572a39a9e3b343c223f3a (patch)
tree83ca945a044386ae90882b24cb30d198aa440f7e /generic/tclBasic.c
parent2e5d02410d31161822705b1b28f1743b8af402fc (diff)
downloadtcl-5f7664fb28c03bce899572a39a9e3b343c223f3a.zip
tcl-5f7664fb28c03bce899572a39a9e3b343c223f3a.tar.gz
tcl-5f7664fb28c03bce899572a39a9e3b343c223f3a.tar.bz2
Modified the logic of literal table cleanup at interp deletion time,
insuring that the fix of [Bug 983660] does not have a negative perf impact.
Diffstat (limited to 'generic/tclBasic.c')
-rw-r--r--generic/tclBasic.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index aec8a18..042e22b 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -13,7 +13,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclBasic.c,v 1.107 2004/07/05 22:41:01 msofer Exp $
+ * RCS: @(#) $Id: tclBasic.c,v 1.108 2004/07/08 18:46:04 msofer Exp $
*/
#include "tclInt.h"
@@ -997,12 +997,13 @@ DeleteInterpProc(interp)
* Dismantle the namespace here, before we clear the assocData. If any
* background errors occur here, they will be deleted below.
*
- * Dismantle the namespace before freeing the iPtr->handle, to insure
- * that non-shared literals are freed properly [Bug 983660].
+ * Dismantle the namespace after freeing the iPtr->handle so that each
+ * bytecode releases its literals without caring to update the literal
+ * table, as it will be freed later in this function without further use.
*/
- TclTeardownNamespace(iPtr->globalNsPtr);
TclHandleFree(iPtr->handle);
+ TclTeardownNamespace(iPtr->globalNsPtr);
/*
* Delete all the hidden commands.