36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
-
+
|
size_t align;
assert(*length > 0);
(*type)++;
(*length)--;
while (*length > 0 && of_ascii_isdigit(**type)) {
while (*length > 0 && OFASCIIIsDigit(**type)) {
(*type)++;
(*length)--;
}
align = alignofEncoding(type, length, true);
if (*length == 0 || **type != ']')
|
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
|
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
|
-
+
|
size_t size;
assert(*length > 0);
(*type)++;
(*length)--;
while (*length > 0 && of_ascii_isdigit(**type)) {
while (*length > 0 && OFASCIIIsDigit(**type)) {
count = count * 10 + **type - '0';
(*type)++;
(*length)--;
}
if (count == 0)
|
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
|
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
|
-
+
-
+
|
_typesPointers = [[OFMutableData alloc]
initWithItemSize: sizeof(char *)];
_offsets = [[OFMutableData alloc]
initWithItemSize: sizeof(size_t)];
last = _types;
for (size_t i = 0; i < length; i++) {
if (of_ascii_isdigit(_types[i])) {
if (OFASCIIIsDigit(_types[i])) {
size_t offset = _types[i] - '0';
if (last == _types + i)
@throw [OFInvalidFormatException
exception];
_types[i] = '\0';
[_typesPointers addItem: &last];
i++;
for (; i < length &&
of_ascii_isdigit(_types[i]); i++)
OFASCIIIsDigit(_types[i]); i++)
offset = offset * 10 + _types[i] - '0';
[_offsets addItem: &offset];
last = _types + i;
i--;
} else if (_types[i] == '{') {
|