adium 4170:076dcfb5b200: Fix the build and lazy init the proxyDi...

commits at adium.im commits at adium.im
Mon Aug 22 06:33:07 UTC 2011


details:	http://hg.adium.im/adium/rev/076dcfb5b200
revision:	4170:076dcfb5b200
branch:		(none)
author:		Stephen Holt <sholt at adium.im>
date:		Sun Aug 21 23:32:43 2011 -0700

Fix the build and lazy init the proxyDict for proxyListObjects

diffs (35 lines):

diff -r 0170acde86c5 -r 076dcfb5b200 Frameworks/Adium Framework/Source/AIProxyListObject.m
--- a/Frameworks/Adium Framework/Source/AIProxyListObject.m	Sun Aug 21 21:12:54 2011 -0500
+++ b/Frameworks/Adium Framework/Source/AIProxyListObject.m	Sun Aug 21 23:32:43 2011 -0700
@@ -17,7 +17,6 @@
 #import "AIProxyListObject.h"
 #import <Adium/ESObjectWithProperties.h>
 #import <Adium/AIListObject.h>
-#import <Adium/MAZeroingWeakRef.h>
 
 @interface NSObject (PublicAPIMissingFromHeadersAndDocsButInTheReleaseNotesGoshDarnit)
 - (id)forwardingTargetForSelector:(SEL)aSelector;
@@ -28,14 +27,18 @@
 @synthesize key, cachedDisplayName, cachedDisplayNameString, cachedLabelAttributes, cachedDisplayNameSize;
 @synthesize listObject, containingObject;
 
-static NSMutableDictionary *proxyDict;
 
-+ (void)initialize
-{
-	if (self == [AIProxyListObject class])
-		proxyDict = [[NSMutableDictionary alloc] init];
+static inline NSMutableDictionary *_getProxyDict() {
+    static NSMutableDictionary *proxyDict;
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        proxyDict = [[NSMutableDictionary alloc] init];
+    });
+    return proxyDict;
 }
 
+#define proxyDict _getProxyDict()
+
 + (AIProxyListObject *)existingProxyListObjectForListObject:(AIListObject *)inListObject
 											   inListObject:(ESObjectWithProperties <AIContainingObject>*)inContainingObject
 {




More information about the commits mailing list