summaryrefslogtreecommitdiffstats
path: root/macosx/tclMacOSXNotify.c
diff options
context:
space:
mode:
authordas <das>2005-05-19 13:27:27 (GMT)
committerdas <das>2005-05-19 13:27:27 (GMT)
commitd8ad4b7c5b396f77b4148d39b50218f0a1d75168 (patch)
tree652eee1d964ae9e411018b717164481bc6041437 /macosx/tclMacOSXNotify.c
parent4459bed11ee445f9e2a6f0263e2b93a31add3dfe (diff)
downloadtcl-d8ad4b7c5b396f77b4148d39b50218f0a1d75168.zip
tcl-d8ad4b7c5b396f77b4148d39b50218f0a1d75168.tar.gz
tcl-d8ad4b7c5b396f77b4148d39b50218f0a1d75168.tar.bz2
* macosx/tclMacOSXNotify.c (Tcl_InitNotifier): fixed crashing
CFRelease of runLoopSource in Tcl_InitNotifier (reported by Zoran): CFRunLoopAddSource doesn't CFRetain, so can only CFRelease the runLoopSource in Tcl_FinalizeNotifier.
Diffstat (limited to 'macosx/tclMacOSXNotify.c')
-rw-r--r--macosx/tclMacOSXNotify.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/macosx/tclMacOSXNotify.c b/macosx/tclMacOSXNotify.c
index 9de3c98..e091888 100644
--- a/macosx/tclMacOSXNotify.c
+++ b/macosx/tclMacOSXNotify.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: tclMacOSXNotify.c,v 1.1 2005/05/14 20:46:46 das Exp $
+ * RCS: @(#) $Id: tclMacOSXNotify.c,v 1.2 2005/05/19 13:27:28 das Exp $
*/
#ifdef HAVE_COREFOUNDATION /* Traditional unix select-based notifier
@@ -248,7 +248,6 @@ Tcl_InitNotifier()
Tcl_Panic("Tcl_InitNotifier: could not create CFRunLoopSource.");
}
CFRunLoopAddSource(runLoop, runLoopSource, kCFRunLoopCommonModes);
- CFRelease(runLoopSource);
tsdPtr->runLoopSource = runLoopSource;
tsdPtr->runLoop = runLoop;
}
@@ -363,6 +362,7 @@ Tcl_FinalizeNotifier(clientData)
tsdPtr->runLoop = NULL;
/* Remove runLoopSource from all CFRunLoops and release it */
CFRunLoopSourceInvalidate(tsdPtr->runLoopSource);
+ CFRelease(runLoopSource);
tsdPtr->runLoopSource = NULL;
}
UNLOCK_NOTIFIER;