From fc917e03f0febbf3d08e3490a28a9b99cd14c8e4 Mon Sep 17 00:00:00 2001 From: hobbs Date: Sat, 31 Mar 2001 07:57:31 +0000 Subject: * generic/tclCkalloc.c (TclFinalizeMemorySubsystem): set curTagPtr to NULL to allow for reuse. * generic/tclEvent.c (Tcl_Finalize): moved the tsdPtr initialization inside the subsystemsInitialized check to prevent it potentially getting called twice during finalization. (wu) [Patch #403532, Bug #219391] --- ChangeLog | 8 ++++++++ generic/tclCkalloc.c | 3 ++- generic/tclEvent.c | 5 +++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 18ccb39..a3cc3a3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2001-03-30 Jeff Hobbs + * generic/tclCkalloc.c (TclFinalizeMemorySubsystem): set curTagPtr + to NULL to allow for reuse. + * generic/tclEvent.c (Tcl_Finalize): moved the tsdPtr + initialization inside the subsystemsInitialized check to prevent + it potentially getting called twice during finalization. (wu) + [Patch #403532, Bug #219391] + + * generic/tclThreadTest.c (Tcl_ThreadObjCmd): cast fixes * generic/tclTest.c (TestChannelCmd): added cast to mollify Windows debug build. diff --git a/generic/tclCkalloc.c b/generic/tclCkalloc.c index 4293a93..68e6336 100644 --- a/generic/tclCkalloc.c +++ b/generic/tclCkalloc.c @@ -13,7 +13,7 @@ * * This code contributed by Karl Lehenbauer and Mark Diekhans * - * RCS: @(#) $Id: tclCkalloc.c,v 1.10 2000/12/08 04:22:43 ericm Exp $ + * RCS: @(#) $Id: tclCkalloc.c,v 1.11 2001/03/31 07:57:31 hobbs Exp $ */ #include "tclInt.h" @@ -1219,6 +1219,7 @@ TclFinalizeMemorySubsystem() } if (curTagPtr != NULL) { TclpFree((char *) curTagPtr); + curTagPtr = NULL; } allocHead = NULL; Tcl_MutexUnlock(ckallocMutexPtr); diff --git a/generic/tclEvent.c b/generic/tclEvent.c index 2fff780..4aae424 100644 --- a/generic/tclEvent.c +++ b/generic/tclEvent.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclEvent.c,v 1.10 2000/11/02 23:34:34 davidg Exp $ + * RCS: @(#) $Id: tclEvent.c,v 1.11 2001/03/31 07:57:31 hobbs Exp $ */ #include "tclInt.h" @@ -766,10 +766,11 @@ Tcl_Finalize() ThreadSpecificData *tsdPtr; TclpInitLock(); - tsdPtr = TCL_TSD_INIT(&dataKey); if (subsystemsInitialized != 0) { subsystemsInitialized = 0; + tsdPtr = TCL_TSD_INIT(&dataKey); + /* * Invoke exit handlers first. */ -- cgit v0.12