From 7aef534ea3723e703428155fa69b912498fa7f18 Mon Sep 17 00:00:00 2001 From: msofer Date: Sat, 6 Oct 2001 00:12:11 +0000 Subject: insured that self-referential bytecodes are properly cleaned up on interpreter deletion [Bug 467523] FossilOrigin-Name: 6a3580fdd4296fa27e94a6e405edb955d3d2aaf2 --- ChangeLog | 6 ++++++ generic/tclLiteral.c | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index f90860c..f7dee1a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2001-10-05 Miguel Sofer + + * generic/tclLiteral.c: (TclReleaseLiteral) insured that + self-referential bytecodes are properly cleaned up on interpreter + deletion [Bug 467523] + 2001-10-04 Jeff Hobbs * tools/configure: diff --git a/generic/tclLiteral.c b/generic/tclLiteral.c index 37ef1db..9c39e4b 100644 --- a/generic/tclLiteral.c +++ b/generic/tclLiteral.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclLiteral.c,v 1.8 1999/08/19 02:59:10 hobbs Exp $ + * RCS: @(#) $Id: tclLiteral.c,v 1.9 2001/10/06 00:12:11 msofer Exp $ */ #include "tclInt.h" @@ -715,6 +715,16 @@ TclReleaseLiteral(interp, objPtr) */ codePtr->objArrayPtr[0] = NULL; + + /* + * At this point, objPtr has three references: one each + * from the global and local literal tables, and one + * self-referential (it is its own internal rep). In + * order to allow the object to be cleared, we remove + * one reference [Bug 467523]. + */ + + Tcl_DecrRefCount(objPtr); } } -- cgit v0.12