ObjFW  Diff

Differences From Artifact [c6a0bb638e]:

To Artifact [b1a8643b2f]:


743
744
745
746
747
748
749





750
751
752



753





754
755
756



757
758
759
760
761
762
763
743
744
745
746
747
748
749
750
751
752
753
754
755


756
757
758
759
760
761
762
763
764
765


766
767
768
769
770
771
772
773
774
775







+
+
+
+
+

-
-
+
+
+

+
+
+
+
+

-
-
+
+
+







			 */
			type = OF_NUMBER_UINTMAX;
			value.uintmax = [[element stringValue] decimalValue];
		} else if ([typeString isEqual: @"signed"]) {
			type = OF_NUMBER_INTMAX;
			value.intmax = [[element stringValue] decimalValue];
		} else if ([typeString isEqual: @"float"]) {
			union {
				float f;
				uint32_t i;
			} f;

			type = OF_NUMBER_FLOAT;
			*(uint32_t*)&value.float_ =
			    (uint32_t)[[element stringValue] hexadecimalValue];
			f.i = (uint32_t)[[element stringValue]
			    hexadecimalValue];
			value.float_ = f.f;
		} else if ([typeString isEqual: @"double"]) {
			union {
				double d;
				uint64_t i;
			} d;

			type = OF_NUMBER_DOUBLE;
			*(uint64_t*)&value.double_ =
			    (uint64_t)[[element stringValue] hexadecimalValue];
			d.i = (uint64_t)[[element stringValue]
			    hexadecimalValue];
			value.double_ = d.d;
		} else
			@throw [OFInvalidArgumentException newWithClass: isa
							       selector: _cmd];

		[pool release];
	} @catch (id e) {
		[self release];