Fix NSCharacterSet caching bug

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@18017 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
CaS 2003-11-01 07:30:21 +00:00
parent 248f589502
commit 009855161e
2 changed files with 11 additions and 3 deletions

View file

@ -42,6 +42,7 @@ static NSString* NSCharacterSet_PATH = @"NSCharacterSets";
#define MAX_STANDARD_SETS 15
static NSCharacterSet* cache_set[MAX_STANDARD_SETS];
static NSLock* cache_lock = nil;
Class abstract = nil;
@implementation NSCharacterSet
@ -65,6 +66,7 @@ static NSLock* cache_lock = nil;
{
unsigned i;
abstract = [NSCharacterSet class];
for (i = 0; i < MAX_STANDARD_SETS; i++)
{
cache_set[i] = 0;
@ -138,7 +140,6 @@ static NSLock* cache_lock = nil;
{
/* Else cache the set */
cache_set[number] = RETAIN(set);
}
NS_HANDLER
[cache_lock unlock];
@ -151,9 +152,10 @@ static NSLock* cache_lock = nil;
[cache_lock unlock];
if ([self isSubclassOfClass: [NSCharacterSet class]])
if (self != abstract && self != [set class])
{
NSData *data;
NSData *data;
data = [set bitmapRepresentation];
set = [self characterSetWithBitmapRepresentation: data];
}