aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPNotLoaded.m
diff options
context:
space:
mode:
Diffstat (limited to 'Source/SPNotLoaded.m')
-rw-r--r--Source/SPNotLoaded.m59
1 files changed, 36 insertions, 23 deletions
diff --git a/Source/SPNotLoaded.m b/Source/SPNotLoaded.m
index 99a5a1d0..7bc5efba 100644
--- a/Source/SPNotLoaded.m
+++ b/Source/SPNotLoaded.m
@@ -4,22 +4,29 @@
// SPNotLoaded.m
// sequel-pro
//
-// Created by Rowan Beentje on 07/10/2009.
-// Copyright 2009 Rowan Beentje. All rights reserved.
+// Created by Rowan Beentje on October 7, 2009.
+// Copyright (c) 2009 Rowan Beentje. All rights reserved.
//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
//
// More info at <http://code.google.com/p/sequel-pro/>
@@ -30,27 +37,30 @@ static SPNotLoaded *notLoaded = nil;
@implementation SPNotLoaded
// Return the singleton object
-+ (SPNotLoaded *) notLoaded
++ (SPNotLoaded *)notLoaded
{
@synchronized(self) {
if (notLoaded == nil) {
notLoaded = [[super allocWithZone:NULL] init];
}
}
+
return notLoaded;
}
-+ (id) allocWithZone:(NSZone *)zone
++ (id)allocWithZone:(NSZone *)zone
{
@synchronized(self) {
return [[self notLoaded] retain];
}
+
return nil;
}
-- (id) init
+- (id)init
{
Class notLoadedClass = [self class];
+
@synchronized(notLoadedClass) {
if (notLoaded == nil) {
if ((self = [super init])) {
@@ -58,18 +68,19 @@ static SPNotLoaded *notLoaded = nil;
}
}
}
+
return notLoaded;
}
-- (id) copyWithZone:(NSZone *)zone { return self; }
+- (id)copyWithZone:(NSZone *)zone { return self; }
-- (id) retain { return self; }
+- (id)retain { return self; }
-- (NSUInteger) retainCount { return NSUIntegerMax; }
+- (NSUInteger)retainCount { return NSUIntegerMax; }
-- (oneway void) release {}
+- (oneway void)release {}
-- (id) autorelease { return self; }
+- (id)autorelease { return self; }
@end
@@ -79,11 +90,13 @@ static SPNotLoaded *notLoaded = nil;
*/
@implementation NSObject (SPNotLoadedTest)
-- (BOOL) isSPNotLoaded
+- (BOOL)isSPNotLoaded
{
static id SPNotLoadedForComparison;
+
if (!SPNotLoadedForComparison) SPNotLoadedForComparison = [SPNotLoaded notLoaded];
- return (self == SPNotLoadedForComparison);
+
+ return (self == SPNotLoadedForComparison);
}
@end