Overview
Comment: | OFDate: Add encoding attribute to serialization |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
0cad64404585c0581c4733a2cbbd52df |
User & Date: | js on 2022-10-18 10:10:01 |
Other Links: | manifest | tags |
Context
2022-10-18
| ||
15:34 | Document more exceptions check-in: e9708e48e0 user: js tags: trunk | |
10:10 | OFDate: Add encoding attribute to serialization check-in: 0cad644045 user: js tags: trunk | |
2022-10-17
| ||
23:27 | Document more exceptions check-in: d92d094980 user: js tags: trunk | |
Changes
Modified src/OFDate.m from [37c8e440d0] to [692871b1cf].
︙ | ︙ | |||
29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #import "OFMessagePackExtension.h" #ifdef OF_HAVE_THREADS # import "OFMutex.h" #endif #import "OFStrPTime.h" #import "OFString.h" #import "OFSystemInfo.h" #import "OFXMLElement.h" #import "OFInitializationFailedException.h" #import "OFInvalidArgumentException.h" #import "OFInvalidFormatException.h" #import "OFOutOfMemoryException.h" #import "OFOutOfRangeException.h" | > | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #import "OFMessagePackExtension.h" #ifdef OF_HAVE_THREADS # import "OFMutex.h" #endif #import "OFStrPTime.h" #import "OFString.h" #import "OFSystemInfo.h" #import "OFXMLAttribute.h" #import "OFXMLElement.h" #import "OFInitializationFailedException.h" #import "OFInvalidArgumentException.h" #import "OFInvalidFormatException.h" #import "OFOutOfMemoryException.h" #import "OFOutOfRangeException.h" |
︙ | ︙ | |||
502 503 504 505 506 507 508 509 510 511 512 513 514 515 | @try { void *pool = objc_autoreleasePoolPush(); unsigned long long value; if (![element.name isEqual: @"OFDate"] || ![element.namespace isEqual: OFSerializationNS]) @throw [OFInvalidArgumentException exception]; value = [element unsignedLongLongValueWithBase: 16]; if (value > UINT64_MAX) @throw [OFOutOfRangeException exception]; seconds = OFFromBigEndianDouble(OFRawUInt64ToDouble( | > > > > | 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 | @try { void *pool = objc_autoreleasePoolPush(); unsigned long long value; if (![element.name isEqual: @"OFDate"] || ![element.namespace isEqual: OFSerializationNS]) @throw [OFInvalidArgumentException exception]; if (![[element attributeForName: @"encoding"].stringValue isEqual: @"hex"]) @throw [OFInvalidFormatException exception]; value = [element unsignedLongLongValueWithBase: 16]; if (value > UINT64_MAX) @throw [OFOutOfRangeException exception]; seconds = OFFromBigEndianDouble(OFRawUInt64ToDouble( |
︙ | ︙ | |||
586 587 588 589 590 591 592 593 594 595 596 597 598 599 | { void *pool = objc_autoreleasePoolPush(); OFXMLElement *element; element = [OFXMLElement elementWithName: @"OFDate" namespace: OFSerializationNS]; element.stringValue = [OFString stringWithFormat: @"%016" PRIx64, OFFromBigEndian64(OFDoubleToRawUInt64(OFToBigEndianDouble( self.timeIntervalSince1970)))]; [element retain]; objc_autoreleasePoolPop(pool); | > | 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 | { void *pool = objc_autoreleasePoolPush(); OFXMLElement *element; element = [OFXMLElement elementWithName: @"OFDate" namespace: OFSerializationNS]; [element addAttributeWithName: @"encoding" stringValue: @"hex"]; element.stringValue = [OFString stringWithFormat: @"%016" PRIx64, OFFromBigEndian64(OFDoubleToRawUInt64(OFToBigEndianDouble( self.timeIntervalSince1970)))]; [element retain]; objc_autoreleasePoolPop(pool); |
︙ | ︙ |
Modified tests/serialization.xml from [f98f3b8fb6] to [ea3d1a36ad].
︙ | ︙ | |||
53 54 55 56 57 58 59 | <key> <OFArray> <OFString>Qu"xbar test</OFString> <OFNumber type='signed'>1234</OFNumber> <OFNumber type='float'>40934a456d5cfaad</OFNumber> <OFMutableString>asd</OFMutableString> | | | 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | <key> <OFArray> <OFString>Qu"xbar test</OFString> <OFNumber type='signed'>1234</OFNumber> <OFNumber type='float'>40934a456d5cfaad</OFNumber> <OFMutableString>asd</OFMutableString> <OFDate encoding='hex'>40934a456d5cfaad</OFDate> </OFArray> </key> <object> <OFString>Hello</OFString> </object> </OFMutableDictionary> </serialization> |