mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 08:21:25 +00:00
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:
parent
248f589502
commit
009855161e
2 changed files with 11 additions and 3 deletions
|
@ -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];
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue