mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-20 12:16:40 +00:00
Some final tiny optimisations for testing string equality.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@3045 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
f57bb849fa
commit
7694a7f14e
7 changed files with 67 additions and 38 deletions
|
@ -66,6 +66,9 @@
|
|||
#include <gnustep/base/NSGString.h>
|
||||
#include <gnustep/base/NSGCString.h>
|
||||
|
||||
#include <gnustep/base/fast.x>
|
||||
|
||||
|
||||
// Uncomment when implemented
|
||||
static NSStringEncoding _availableEncodings[] = {
|
||||
NSASCIIStringEncoding,
|
||||
|
@ -1406,11 +1409,19 @@ else
|
|||
|
||||
- (BOOL) isEqual: (id)anObject
|
||||
{
|
||||
if (anObject == self)
|
||||
return YES;
|
||||
if ([anObject isKindOfClass:[NSString class]] == YES)
|
||||
return [self isEqualToString:anObject];
|
||||
return NO;
|
||||
if (anObject == self) {
|
||||
return YES;
|
||||
}
|
||||
if (anObject != nil) {
|
||||
Class c = fastClassOfInstance(anObject);
|
||||
|
||||
if (c != nil) {
|
||||
if (fastClassIsKindOfClass(c, _fastCls._NSString)) {
|
||||
return [self isEqualToString: anObject];
|
||||
}
|
||||
}
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (BOOL) isEqualToString: (NSString*)aString
|
||||
|
@ -1572,7 +1583,7 @@ else
|
|||
|
||||
/*
|
||||
* The hash caching in our concrete strin classes uses zero to denote
|
||||
* an empty cache value, so we must not return a hash of zero.
|
||||
* an empty cache value, so we MUST NOT return a hash of zero.
|
||||
*/
|
||||
if (ret == 0)
|
||||
ret = 0xffffffff;
|
||||
|
@ -2640,12 +2651,13 @@ else
|
|||
|
||||
- (void) encodeWithCoder: anEncoder
|
||||
{
|
||||
[super encodeWithCoder:anEncoder];
|
||||
[self subclassResponsibility:_cmd];
|
||||
}
|
||||
|
||||
- initWithCoder: aDecoder
|
||||
{
|
||||
return [super initWithCoder:aDecoder];
|
||||
[self subclassResponsibility:_cmd];
|
||||
return self;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue