Artifact 4dca2f32e1603e21369cb08934ca4a7166cc38e9ac9e9c467a8a64686b90c981:
- File
src/OFConstString.m
— part of check-in
[139591afe1]
at
2009-04-19 20:34:38
on branch trunk
— Use isa instead of [self class].
Since we don't use Object anymore and define isa in OFObject, we can
rely on it. (user: js, size: 1496) [annotate] [blame] [check-ins using]
/* * Copyright (c) 2008 - 2009 * Jonathan Schleifer <js@webkeks.org> * * All rights reserved. * * This file is part of libobjfw. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE included in * the packaging of this file. */ #import "config.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #import "OFConstString.h" #import "OFString.h" #import "OFExceptions.h" #import "OFMacros.h" #ifndef __objc_INCLUDE_GNU void *_OFConstStringClassReference; #endif @implementation OFConstString #ifndef __objc_INCLUDE_GNU + (void)load { objc_setFutureClass((Class)&_OFConstStringClassReference, "OFConstString"); } #endif - (const char*)cString { return string; } - (size_t)length { return length; } - (BOOL)isEqual: (id)obj { if (![obj isKindOf: [OFString class]] && ![obj isKindOf: [OFConstString class]]) return NO; if (strcmp(string, [obj cString])) return NO; return YES; } - (int)compare: (id)obj { if (![obj isKindOf: [OFString class]] && ![obj isKindOf: [OFConstString class]]) @throw [OFInvalidArgumentException newWithClass: isa]; return strcmp(string, [obj cString]); } - (uint32_t)hash { uint32_t hash; size_t i; OF_HASH_INIT(hash); for (i = 0; i < length; i++) OF_HASH_ADD(hash, string[i]); OF_HASH_FINALIZE(hash); return hash; } - retain { return self; } - release { return self; } - (size_t)retainCount { return 1; } - autorelease { return self; } @end