summaryrefslogtreecommitdiffstats
path: root/generic/tclBasic.c
diff options
context:
space:
mode:
authorKevin B Kenny <kennykb@acm.org>2004-07-21 00:42:37 (GMT)
committerKevin B Kenny <kennykb@acm.org>2004-07-21 00:42:37 (GMT)
commitb7baa5cf544d8865daa4745ad9616caabfedd664 (patch)
tree497cd829d08b8227765ef2485af55dd5733a6147 /generic/tclBasic.c
parent1588001f922d15b8d69b00506ab0260f81595b8f (diff)
downloadtcl-b7baa5cf544d8865daa4745ad9616caabfedd664.zip
tcl-b7baa5cf544d8865daa4745ad9616caabfedd664.tar.gz
tcl-b7baa5cf544d8865daa4745ad9616caabfedd664.tar.bz2
2004-07-21 Kevin Kenny <kennykb@acm.org>
* generic/tclBasic.c (DeleteInterpProc): * generic/tclLiteral.c (TclCleanupLiteralTable): * generic/tclInt.h: added a TclCleanupLiteralTable function, called from DeleteInterpProc, that frees internal representations of shared literals early when an interpreter is being deleted. This change corrects a number of memory mismanagement issues in the cases where the internal representation of one literal contains a reference to another, and avoids conditions such as resolved variable names referring to procedure and namespace contexts that no longer exist. [Bug 994838]
Diffstat (limited to 'generic/tclBasic.c')
-rw-r--r--generic/tclBasic.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 6e97632..16d5052 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.109 2004/07/12 01:56:12 msofer Exp $
+ * RCS: @(#) $Id: tclBasic.c,v 1.110 2004/07/21 00:42:38 kennykb Exp $
*/
#include "tclInt.h"
@@ -1002,6 +1002,7 @@ DeleteInterpProc(interp)
* table, as it will be freed later in this function without further use.
*/
+ TclCleanupLiteralTable(interp, &(iPtr->literalTable));
TclHandleFree(iPtr->handle);
TclTeardownNamespace(iPtr->globalNsPtr);