Revision: 4122
          http://skim-app.svn.sourceforge.net/skim-app/?rev=4122&view=rev
Author:   hofman
Date:     2008-07-03 08:02:16 -0700 (Thu, 03 Jul 2008)

Log Message:
-----------
Implement singletons along the lines of the docs.

Modified Paths:
--------------
    trunk/SKDownloadController.m
    trunk/SKFindController.m
    trunk/SKInfoWindowController.m
    trunk/SKLineInspector.m
    trunk/SKNotesPanelController.m
    trunk/SKPreferenceController.m

Modified: trunk/SKDownloadController.m
===================================================================
--- trunk/SKDownloadController.m        2008-07-03 00:38:29 UTC (rev 4121)
+++ trunk/SKDownloadController.m        2008-07-03 15:02:16 UTC (rev 4122)
@@ -57,18 +57,21 @@
 
 @implementation SKDownloadController
 
+static SKDownloadController *sharedDownloadController = nil;
+
 + (id)sharedDownloadController {
-    static SKDownloadController *sharedDownloadController = nil;
-    if (sharedDownloadController == nil)
-        sharedDownloadController = [[self alloc] init];
-    return sharedDownloadController;
+    return sharedDownloadController ? sharedDownloadController : [[self alloc] 
init];
 }
 
++ (id)allocWithZone:(NSZone *)zone {
+    return sharedDownloadController ? sharedDownloadController : [super 
allocWithZone:zone];
+}
+
 - (id)init {
-    if (self = [super init]) {
+    if (sharedDownloadController == nil && (sharedDownloadController = self = 
[super init])) {
         downloads = [[NSMutableArray alloc] init];
     }
-    return self;
+    return sharedDownloadController;
 }
 
 - (void)dealloc {
@@ -76,6 +79,14 @@
     [super dealloc];
 }
 
+- (id)retain { return self; }
+
+- (id)autorelease { return self; }
+
+- (void)release {}
+
+- (unsigned)retainCount { return UINT_MAX; }
+
 - (NSString *)windowNibName { return @"DownloadsWindow"; }
 
 - (void)reloadTableView {

Modified: trunk/SKFindController.m
===================================================================
--- trunk/SKFindController.m    2008-07-03 00:38:29 UTC (rev 4121)
+++ trunk/SKFindController.m    2008-07-03 15:02:16 UTC (rev 4122)
@@ -45,20 +45,22 @@
 
 @implementation SKFindController
 
-static id sharedFindController = nil;
+static SKFindController *sharedFindController = nil;
 
 + (id)sharedFindController {
-    if (sharedFindController == nil)
-        sharedFindController = [[self alloc] init];
-    return sharedFindController;
+    return sharedFindController ? sharedFindController : [[self alloc] init];
 }
 
++ (id)allocWithZone:(NSZone *)zone {
+    return sharedFindController ? sharedFindController : [super 
allocWithZone:zone];
+}
+
 - (id)init {
-    if (self = [super init]) {
+    if (sharedFindController == nil && (sharedFindController = self = [super 
init])) {
         ignoreCase = YES;
         editors = CFArrayCreateMutable(kCFAllocatorMallocZone, 0, NULL);
     }
-    return self;
+    return sharedFindController;
 }
 
 - (void)dealloc {
@@ -67,25 +69,14 @@
     [super dealloc];
 }
 
-- (id)retain {
-    if (self == sharedFindController)
-        return self;
-    else
-        return [super retain];
-}
+- (id)retain { return self; }
 
-- (void)release {
-    if (self != sharedFindController)
-        [super release];
-}
+- (id)autorelease { return self; }
 
-- (id)autorelease {
-    if (self == sharedFindController)
-        return self;
-    else
-        return [super autorelease];
-}
+- (void)release {}
 
+- (unsigned)retainCount { return UINT_MAX; }
+
 - (NSString *)windowNibName { return @"FindPanel"; }
 
 - (void)awakeFromNib {

Modified: trunk/SKInfoWindowController.m
===================================================================
--- trunk/SKInfoWindowController.m      2008-07-03 00:38:29 UTC (rev 4121)
+++ trunk/SKInfoWindowController.m      2008-07-03 15:02:16 UTC (rev 4122)
@@ -59,6 +59,8 @@
 
 @implementation SKInfoWindowController
 
+static SKInfoWindowController *sharedInstance = nil;
+
 + (void)initialize {
     OBINITIALIZE;
     
@@ -68,18 +70,18 @@
 }
 
 + (id)sharedInstance {
-    static SKInfoWindowController *sharedInstance = nil;
-    if (sharedInstance == nil) {
-        sharedInstance = [[self alloc] init];
-    }
-    return sharedInstance;
+    return sharedInstance ? sharedInstance : [[self alloc] init];
 }
 
++ (id)allocWithZone:(NSZone *)zone {
+    return sharedInstance ? sharedInstance : [super allocWithZone:zone];
+}
+
 - (id)init {
-    if (self = [super init]) {
+    if (sharedInstance == nil && (sharedInstance = self = [super init])) {
         info = [[NSMutableDictionary alloc] init];
     }
-    return self;
+    return sharedInstance;
 }
 
 - (void)dealloc {
@@ -88,6 +90,14 @@
     [super dealloc];
 }
 
+- (id)retain { return self; }
+
+- (id)autorelease { return self; }
+
+- (void)release {}
+
+- (unsigned)retainCount { return UINT_MAX; }
+
 - (NSString *)windowNibName {
     return @"InfoWindow";
 }

Modified: trunk/SKLineInspector.m
===================================================================
--- trunk/SKLineInspector.m     2008-07-03 00:38:29 UTC (rev 4121)
+++ trunk/SKLineInspector.m     2008-07-03 15:02:16 UTC (rev 4122)
@@ -61,9 +61,7 @@
 static SKLineInspector *sharedLineInspector = nil;
 
 + (id)sharedLineInspector {
-    if (sharedLineInspector == nil)
-        [[self alloc] init];
-    return sharedLineInspector;
+    return sharedLineInspector ? sharedLineInspector : [[self alloc] init];
 }
 
 + (BOOL)sharedLineInspectorExists {
@@ -71,15 +69,11 @@
 }
 
 + (id)allocWithZone:(NSZone *)zone {
-    if (sharedLineInspector == nil)
-        return [super allocWithZone:[self zone]];
-    else
-        return sharedLineInspector;
+    return sharedLineInspector ? sharedLineInspector : [super 
allocWithZone:zone];
 }
 
 - (id)init {
-    if (sharedLineInspector == nil && (self = [super 
initWithWindowNibName:@"LineInspector"])) {
-        sharedLineInspector = self;
+    if (sharedLineInspector == nil && (sharedLineInspector = self = [super 
initWithWindowNibName:@"LineInspector"])) {
         style = kPDFBorderStyleSolid;
         lineWidth = 1.0;
         dashPattern = nil;

Modified: trunk/SKNotesPanelController.m
===================================================================
--- trunk/SKNotesPanelController.m      2008-07-03 00:38:29 UTC (rev 4121)
+++ trunk/SKNotesPanelController.m      2008-07-03 15:02:16 UTC (rev 4122)
@@ -46,9 +46,7 @@
 static SKNotesPanelController *sharedController = nil;
 
 + (id)sharedController {
-    if (sharedController == nil)
-        [[self alloc] init];
-    return sharedController;
+    return sharedController ? sharedController : [[self alloc] init];
 }
 
 + (BOOL)sharedControllerExists {
@@ -56,10 +54,7 @@
 }
 
 + (id)allocWithZone:(NSZone *)zone {
-    if (sharedController == nil)
-        return [super allocWithZone:[self zone]];
-    else
-        return sharedController;
+    return sharedController ? sharedController : [super allocWithZone:[self 
zone]];
 }
 
 - (id)init {

Modified: trunk/SKPreferenceController.m
===================================================================
--- trunk/SKPreferenceController.m      2008-07-03 00:38:29 UTC (rev 4121)
+++ trunk/SKPreferenceController.m      2008-07-03 15:02:16 UTC (rev 4122)
@@ -59,15 +59,18 @@
 
 @implementation SKPreferenceController
 
+static SKPreferenceController *sharedPrefenceController = nil;
+
 + (id)sharedPrefenceController {
-    static SKPreferenceController *sharedPrefenceController = nil;
-    if (sharedPrefenceController == nil)
-        sharedPrefenceController = [[self alloc] init];
-    return sharedPrefenceController;
+    return sharedPrefenceController ? sharedPrefenceController : [[self alloc] 
init];
 }
 
++ (id)allocWithZone:(NSZone *)zone {
+    return sharedPrefenceController ? sharedPrefenceController : [super 
allocWithZone:zone];
+}
+
 - (id)init {
-    if (self = [super init]) {
+    if (sharedPrefenceController == nil && (sharedPrefenceController = self = 
[super init])) {
         NSString *initialUserDefaultsPath = [[NSBundle mainBundle] 
pathForResource:SKPreferenceInitialUserDefaultsFileName ofType:@"plist"];
         resettableKeys = [[[NSDictionary 
dictionaryWithContentsOfFile:initialUserDefaultsPath] 
valueForKey:SKPreferenceResettableKeysKey] retain];
         
@@ -84,6 +87,14 @@
     [super dealloc];
 }
 
+- (id)retain { return self; }
+
+- (id)autorelease { return self; }
+
+- (void)release {}
+
+- (unsigned)retainCount { return UINT_MAX; }
+
 - (NSString *)windowNibName {
     return @"PreferenceWindow";
 }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to