* Source/NSDecimalNumber.m

(NSDecimalNumberClass): Added local class cache.
	([+initialize]): Initialize new cache.
	([-compare]): Test for all subclasses instead of only NSDecimalNumber
	instances.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@25656 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
ayers 2007-12-02 14:07:44 +00:00
parent 090b8261f6
commit 4a538367ee
2 changed files with 8 additions and 2 deletions

View file

@ -4,7 +4,11 @@
* Source/NSDecimalNumber.m ([initWithBytes:objCType:]): Implement * Source/NSDecimalNumber.m ([initWithBytes:objCType:]): Implement
initialization with scalar types. Use GSPrivateDefaultLocale initialization with scalar types. Use GSPrivateDefaultLocale
to initialze intermediate string to match expectations of to initialze intermediate string to match expectations of
initWithString. initWithString.
(NSDecimalNumberClass): Added local class cache.
([+initialize]): Initialize new cache.
([-compare]): Test for all subclasses instead of only NSDecimalNumber
instances.
2007-11-30 Richard Frith-Macdonald <rfm@gnu.org> 2007-11-30 Richard Frith-Macdonald <rfm@gnu.org>

View file

@ -144,6 +144,7 @@ static NSDecimalNumberHandler *handler;
@implementation NSDecimalNumber @implementation NSDecimalNumber
static Class NSDecimalNumberClass;
static NSDecimalNumber *maxNumber; static NSDecimalNumber *maxNumber;
static NSDecimalNumber *minNumber; static NSDecimalNumber *minNumber;
static NSDecimalNumber *notANumber; static NSDecimalNumber *notANumber;
@ -166,6 +167,7 @@ static NSDecimalNumber *one;
one = [[self alloc] initWithMantissa: 1 one = [[self alloc] initWithMantissa: 1
exponent: 0 exponent: 0
isNegative: NO]; isNegative: NO];
NSDecimalNumberClass = [NSDecimalNumber class];
} }
+ (id <NSDecimalNumberBehaviors>) defaultBehavior + (id <NSDecimalNumberBehaviors>) defaultBehavior
@ -583,7 +585,7 @@ static NSDecimalNumber *one;
- (NSComparisonResult) compare: (NSNumber*)decimalNumber - (NSComparisonResult) compare: (NSNumber*)decimalNumber
{ {
if ([decimalNumber isMemberOfClass: [self class]]) if ([decimalNumber isKindOfClass: NSDecimalNumberClass])
{ {
NSDecimal d1 = [self decimalValue]; NSDecimal d1 = [self decimalValue];
NSDecimal d2 = [(NSDecimalNumber*)decimalNumber decimalValue]; NSDecimal d2 = [(NSDecimalNumber*)decimalNumber decimalValue];