756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
|
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
|
-
+
-
+
|
float f;
uint32_t u;
} f;
f.u = (uint32_t)[element hexadecimalValue];
type = OF_NUMBER_FLOAT;
value.float_ = of_bswap_float_if_le(f.f);
value.float_ = f.f;
} else if ([typeString isEqual: @"double"]) {
union {
double d;
uint64_t u;
} d;
d.u = (uint64_t)[element hexadecimalValue];
type = OF_NUMBER_DOUBLE;
value.double_ = of_bswap_double_if_le(d.d);
value.double_ = d.d;
} else
@throw [OFInvalidArgumentException
exceptionWithClass: [self class]
selector: _cmd];
objc_autoreleasePoolPop(pool);
} @catch (id e) {
|
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
|
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
|
-
+
-
+
|
break;
case OF_NUMBER_FLOAT:;
union {
float f;
uint32_t u;
} f;
f.f = of_bswap_float_if_le(value.float_);
f.f = value.float_;
[element addAttributeWithName: @"type"
stringValue: @"float"];
[element setStringValue:
[OFString stringWithFormat: @"%08" PRIx32, f.u]];
break;
case OF_NUMBER_DOUBLE:;
union {
double d;
uint64_t u;
} d;
d.d = of_bswap_double_if_le(value.double_);
d.d = value.double_;
[element addAttributeWithName: @"type"
stringValue: @"double"];
[element setStringValue:
[OFString stringWithFormat: @"%016" PRIx64, d.u]];
break;
|