Skip to content

Commit

Permalink
Merge pull request #2336 from cpasslack/cpasslack/corruptDecimalNumbe…
Browse files Browse the repository at this point in the history
…rAfterDecodingFix

Fixed: Encoding a [CPDecimalNumber zero] causes a corrupt CPDecimalNumbe...
  • Loading branch information
primalmotion committed Mar 31, 2015
2 parents 1925b7b + bb9049b commit 007ca4c
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
16 changes: 16 additions & 0 deletions Foundation/CPDecimalNumber.j
Expand Up @@ -28,6 +28,8 @@
// The default global behavior class, created lazily
var CPDefaultDcmHandler = nil;

var CPDecimalNumberUIDs = new CFMutableDictionary();

/*!
@class CPDecimalNumberHandler
@ingroup foundation
Expand Down Expand Up @@ -531,6 +533,20 @@ var CPDecimalNumberHandlerRoundingModeKey = @"CPDecimalNumberHandlerRoundi
}

// instance methods

- (CPString)UID
{
var UID = CPDecimalNumberUIDs.valueForKey(self);

if (!UID)
{
UID = objj_generateObjectUID();
CPDecimalNumberUIDs.setValueForKey(self, UID);
}

return UID + "";
}

/*!
Returns a new CPDecimalNumber object with the result of the summation of
the receiver object and \c decimalNumber. If overflow occurs then the
Expand Down
1 change: 1 addition & 0 deletions Tests/AppKit/CPTextFieldTest.j
Expand Up @@ -29,6 +29,7 @@

[numberFormatter setNumberStyle:CPNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:3];
[numberFormatter setGeneratesDecimalNumbers:NO];

[control setFormatter:numberFormatter];
[control setStringValue:@"12.3456"];
Expand Down
1 change: 1 addition & 0 deletions Tests/Foundation/CPNumberFormatterTest.j
Expand Up @@ -62,6 +62,7 @@

[numberFormatter setMinimum:10];
[numberFormatter setMaximum:20];
[numberFormatter setGeneratesDecimalNumbers:NO];

[self assertTrue:[numberFormatter getObjectValue:objectValueRef forString:@"10" errorDescription:nil]
message:@"MinMax T1: Expected True."];
Expand Down

0 comments on commit 007ca4c

Please sign in to comment.