mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +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
	
	 Ronald Oussoren
						Ronald Oussoren