From 3674219a5ddc7debb28385655c82a42ef8027b67 Mon Sep 17 00:00:00 2001 From: rentzsch Date: Sat, 23 May 2009 14:52:59 -0500 Subject: [PATCH 1/2] [CHANGE] 10.4 compatiblity: only use -[NSBundle loadAndReturnError:] when it's available. --- SparkleManager.m | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/SparkleManager.m b/SparkleManager.m index ee09258d..87c784f7 100755 --- a/SparkleManager.m +++ b/SparkleManager.m @@ -71,7 +71,12 @@ - (SUUpdater*)_updater { NSAssert(sparkleFramework, nil); NSError *error = nil; - BOOL loaded = [sparkleFramework loadAndReturnError:&error]; + BOOL loaded; + if ([sparkleFramework respondsToSelector:@selector(loadAndReturnError:)]) { + loaded = [sparkleFramework loadAndReturnError:&error]; + } else { + loaded = [sparkleFramework load]; + } if (loaded) { NSBundle *clickToFlashBundle = [NSBundle bundleWithIdentifier:@"com.github.rentzsch.clicktoflash"]; NSAssert(clickToFlashBundle, nil); From f027c415cadd1dada95017e57fc117c55152199c Mon Sep 17 00:00:00 2001 From: rentzsch Date: Sat, 23 May 2009 16:07:35 -0500 Subject: [PATCH 2/2] [FIX] Work-around MATrackingArea 10.4 GC incompatiblity. --- MATrackingArea/MATrackingArea.h | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/MATrackingArea/MATrackingArea.h b/MATrackingArea/MATrackingArea.h index 56eb3ecd..8c5f50bf 100755 --- a/MATrackingArea/MATrackingArea.h +++ b/MATrackingArea/MATrackingArea.h @@ -66,7 +66,24 @@ typedef unsigned int MATrackingAreaOptions; @private NSRect _rect; MATrackingAreaOptions _options; - __weak id _owner; + /* + Work-around: __weak breaks under ClickToFlash's specific environment: + + * 10.5-or-later Base SDK (GC-aware) + * -fobjc-gc (GC supported but not required) + * 10.4 deployment target (MACOSX_DEPLOYMENT_TARGET=10.4) + + The problem is 10.5 SDK + -fobjc-gc settings means function calls + such as _objc_assign_weak are emitted, but don't actually exist on + 10.4. We die with an "Symbol not found" dyld error. + + We work-around this by commenting-out __weak. In the general case + this is a too-broad work-around, but is fine for ClickToFlash's + specific case: we only use MATrackingArea when NSTrackingArea isn't + available. That means we only use MATrackingArea on 10.4, and 10.4 + doesn't support GC anyways. + */ + /*__weak*/ id _owner; NSDictionary * _userInfo; NSPoint _lastMovedPoint; BOOL _inside;