@@ -1,7 +1,7 @@ /* - * Copyright (c) 2008-2022 Jonathan Schleifer + * Copyright (c) 2008-2024 Jonathan Schleifer * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE.QPL included in @@ -54,37 +54,19 @@ - (instancetype)initWithRange: (OFRange)range { return (id)[[OFRangeCharacterSet alloc] initWithRange: range]; } -- (instancetype)retain -{ - return self; -} - -- (instancetype)autorelease -{ - return self; -} - -- (void)release -{ -} - -- (void)dealloc -{ - OF_DEALLOC_UNSUPPORTED -} +OF_SINGLETON_METHODS @end @implementation OFCharacterSet + (void)initialize { - if (self != [OFCharacterSet class]) - return; - - placeholder.isa = [OFPlaceholderCharacterSet class]; + if (self == [OFCharacterSet class]) + object_setClass((id)&placeholder, + [OFPlaceholderCharacterSet class]); } + (instancetype)alloc { if (self == [OFCharacterSet class]) @@ -149,29 +131,10 @@ initWithCharacterSet: self] autorelease]; } @end @implementation OFWhitespaceCharacterSet -- (instancetype)autorelease -{ - return self; -} - -- (instancetype)retain -{ - return self; -} - -- (void)release -{ -} - -- (unsigned int)retainCount -{ - return OFMaxRetainCount; -} - - (bool)characterIsMember: (OFUnichar)character { switch (character) { case 0x0009: case 0x0020: @@ -194,6 +157,8 @@ return true; default: return false; } } + +OF_SINGLETON_METHODS @end