Merge pull request #2336 from cpasslack/cpasslack/corruptDecimalNumberAfterDecodingFix

Fixed: Encoding a [CPDecimalNumber zero] causes a corrupt CPDecimalNumbe...
This commit is contained in:
Antoine Mercadal
2015-03-31 11:25:20 -07:00
3 changed files with 18 additions and 0 deletions
+16
View File
@@ -28,6 +28,8 @@
// The default global behavior class, created lazily
var CPDefaultDcmHandler = nil;
var CPDecimalNumberUIDs = new CFMutableDictionary();
/*!
@class CPDecimalNumberHandler
@ingroup foundation
@@ -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
+1
View File
@@ -29,6 +29,7 @@
[numberFormatter setNumberStyle:CPNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:3];
[numberFormatter setGeneratesDecimalNumbers:NO];
[control setFormatter:numberFormatter];
[control setStringValue:@"12.3456"];
+1
View File
@@ -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."];