diff options
author | hobbs <hobbs@noemail.net> | 2002-12-17 21:35:55 (GMT) |
---|---|---|
committer | hobbs <hobbs@noemail.net> | 2002-12-17 21:35:55 (GMT) |
commit | dda15ce6236a900f904f21cc5c22f4e6d63dd404 (patch) | |
tree | f52efdc91a35a428ac0b5ca6d9bd65d98f6827e6 /generic | |
parent | 170fea142c229b2529e5c9a97d32307d65dc36e9 (diff) | |
download | tcl-dda15ce6236a900f904f21cc5c22f4e6d63dd404.zip tcl-dda15ce6236a900f904f21cc5c22f4e6d63dd404.tar.gz tcl-dda15ce6236a900f904f21cc5c22f4e6d63dd404.tar.bz2 |
* generic/tclNotify.c (TclFinalizeNotifier, Tcl_SetServiceMode):
(Tcl_ThreadAlert): Check that the stub functions are non-NULL
before calling them. They could be set to NULL by Tcl_SetNotifier.
FossilOrigin-Name: 7f6f5e67ac6f23ea403d55192d7e93de7d6ebbd2
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclNotify.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/generic/tclNotify.c b/generic/tclNotify.c index a8754b0..a9bdebc 100644 --- a/generic/tclNotify.c +++ b/generic/tclNotify.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: tclNotify.c,v 1.9 2002/08/31 06:09:45 das Exp $ + * RCS: @(#) $Id: tclNotify.c,v 1.10 2002/12/17 21:35:56 hobbs Exp $ */ #include "tclInt.h" @@ -160,7 +160,9 @@ TclFinalizeNotifier() Tcl_MutexLock(&listLock); - tclStubs.tcl_FinalizeNotifier(tsdPtr->clientData); + if (tclStubs.tcl_FinalizeNotifier) { + tclStubs.tcl_FinalizeNotifier(tsdPtr->clientData); + } Tcl_MutexFinalize(&(tsdPtr->queueMutex)); for (prevPtrPtr = &firstNotifierPtr; *prevPtrPtr != NULL; prevPtrPtr = &((*prevPtrPtr)->nextPtr)) { @@ -721,7 +723,9 @@ Tcl_SetServiceMode(mode) oldMode = tsdPtr->serviceMode; tsdPtr->serviceMode = mode; - tclStubs.tcl_ServiceModeHook(mode); + if (tclStubs.tcl_ServiceModeHook) { + tclStubs.tcl_ServiceModeHook(mode); + } return oldMode; } @@ -1087,7 +1091,9 @@ Tcl_ThreadAlert(threadId) Tcl_MutexLock(&listLock); for (tsdPtr = firstNotifierPtr; tsdPtr; tsdPtr = tsdPtr->nextPtr) { if (tsdPtr->threadId == threadId) { - tclStubs.tcl_AlertNotifier(tsdPtr->clientData); + if (tclStubs.tcl_AlertNotifier) { + tclStubs.tcl_AlertNotifier(tsdPtr->clientData); + } break; } } |