mirror of
https://github.com/python/cpython.git
synced 2025-09-11 03:07:01 +00:00
Issue #14455: fix handling of unsigned long long values for binary plist files
Values in the range of an unsigned long long, but outside of the range of a signed long long were serialized as a negative value. Due to a bug in PyObjC my test scripts indicated that the previous behavior matched Apple's plist code, instead the handle large unsigned values correctly. The change to plistlib.py is from a patch by Serhiy.
This commit is contained in:
parent
3dcb0cf9b1
commit
94e44a935b
5 changed files with 79 additions and 78 deletions
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from Cocoa import NSMutableDictionary, NSMutableArray, NSString, NSDate
|
||||
from Cocoa import NSMutableDictionary, NSMutableArray, NSString, NSDate, NSNumber
|
||||
from Cocoa import NSPropertyListSerialization, NSPropertyListOpenStepFormat
|
||||
from Cocoa import NSPropertyListXMLFormat_v1_0, NSPropertyListBinaryFormat_v1_0
|
||||
from Cocoa import CFUUIDCreateFromString, NSNull, NSUUID, CFPropertyListCreateData
|
||||
|
@ -30,6 +30,7 @@ def main():
|
|||
|
||||
seconds = datetime.datetime(2004, 10, 26, 10, 33, 33, tzinfo=datetime.timezone(datetime.timedelta(0))).timestamp()
|
||||
pl[nsstr('aBigInt')] = 2 ** 63 - 44
|
||||
pl[nsstr('aBigInt2')] = NSNumber.numberWithUnsignedLongLong_(2 ** 63 + 44)
|
||||
pl[nsstr('aDate')] = NSDate.dateWithTimeIntervalSince1970_(seconds)
|
||||
|
||||
pl[nsstr('aDict')] = d = OrderedDict()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue