Differences From Artifact [4cdd46e0d2]:
- File src/OFUTF8String.m — part of check-in [4fbdca698c] at 2020-11-07 20:23:04 on branch trunk — OFObject: Remove -[allocMemoryWithSize:] (user: js, size: 28423) [annotate] [blame] [check-ins using] [more...]
To Artifact [4b2268ed9f]:
- File
src/OFUTF8String.m
— part of check-in
[627511b032]
at
2020-11-14 12:23:55
on branch trunk
— Rename of_malloc and of_calloc
The new names should be more accurate. (user: js, size: 28421) [annotate] [blame] [check-ins using] [more...]
︙ | ︙ | |||
177 178 179 180 181 182 183 | - (instancetype)init { self = [super init]; @try { _s = &_storage; | | | 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | - (instancetype)init { self = [super init]; @try { _s = &_storage; _s->cString = of_alloc_zeroed(1, 1); _s->freeWhenDone = true; } @catch (id e) { [self release]; @throw e; } return self; |
︙ | ︙ | |||
243 244 245 246 247 248 249 | memcmp(cString, "\xEF\xBB\xBF", 3) == 0) { cString += 3; cStringLength -= 3; } _s = &_storage; | | | 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | memcmp(cString, "\xEF\xBB\xBF", 3) == 0) { cString += 3; cStringLength -= 3; } _s = &_storage; _s->cString = of_alloc(cStringLength + 1, 1); _s->cStringLength = cStringLength; _s->freeWhenDone = true; if (encoding == OF_STRING_ENCODING_UTF_8 || encoding == OF_STRING_ENCODING_ASCII) { switch (of_string_utf8_check(cString, cStringLength, &_s->length)) { |
︙ | ︙ | |||
448 449 450 451 452 453 454 | [string isKindOfClass: [OFMutableUTF8String class]]) _s->isUTF8 = ((OFUTF8String *)string)->_s->isUTF8; else _s->isUTF8 = true; _s->length = string.length; | | | | 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 | [string isKindOfClass: [OFMutableUTF8String class]]) _s->isUTF8 = ((OFUTF8String *)string)->_s->isUTF8; else _s->isUTF8 = true; _s->length = string.length; _s->cString = of_alloc(_s->cStringLength + 1, 1); memcpy(_s->cString, string.UTF8String, _s->cStringLength + 1); _s->freeWhenDone = true; } @catch (id e) { [self release]; @throw e; } return self; } - (instancetype)initWithCharacters: (const of_unichar_t *)characters length: (size_t)length { self = [super init]; @try { size_t j; _s = &_storage; _s->cString = of_alloc((length * 4) + 1, 1); _s->length = length; _s->freeWhenDone = true; j = 0; for (size_t i = 0; i < length; i++) { size_t len = of_string_utf8_encode(characters[i], _s->cString + j); |
︙ | ︙ | |||
525 526 527 528 529 530 531 | string++; length--; } else if (byteOrder != OF_BYTE_ORDER_NATIVE) swap = true; _s = &_storage; | | | 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 | string++; length--; } else if (byteOrder != OF_BYTE_ORDER_NATIVE) swap = true; _s = &_storage; _s->cString = of_alloc((length * 4) + 1, 1); _s->length = length; _s->freeWhenDone = true; j = 0; for (size_t i = 0; i < length; i++) { of_unichar_t character = (swap ? OF_BSWAP16(string[i]) : string[i]); |
︙ | ︙ | |||
610 611 612 613 614 615 616 | characters++; length--; } else if (byteOrder != OF_BYTE_ORDER_NATIVE) swap = true; _s = &_storage; | | | 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 | characters++; length--; } else if (byteOrder != OF_BYTE_ORDER_NATIVE) swap = true; _s = &_storage; _s->cString = of_alloc((length * 4) + 1, 1); _s->length = length; _s->freeWhenDone = true; j = 0; for (size_t i = 0; i < length; i++) { char buffer[4]; size_t len = of_string_utf8_encode( |
︙ | ︙ | |||
685 686 687 688 689 690 691 | case 1: _s->isUTF8 = true; break; case -1: @throw [OFInvalidEncodingException exception]; } | | | 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 | case 1: _s->isUTF8 = true; break; case -1: @throw [OFInvalidEncodingException exception]; } _s->cString = of_alloc(cStringLength + 1, 1); memcpy(_s->cString, tmp, cStringLength + 1); _s->freeWhenDone = true; } @finally { free(tmp); } } @catch (id e) { [self release]; |
︙ | ︙ | |||
1151 1152 1153 1154 1155 1156 1157 | objc_autoreleasePoolPop(pool); return array; } - (const of_unichar_t *)characters { | | | 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 | objc_autoreleasePoolPop(pool); return array; } - (const of_unichar_t *)characters { of_unichar_t *buffer = of_alloc(_s->length, sizeof(of_unichar_t)); size_t i = 0, j = 0; while (i < _s->cStringLength) { of_unichar_t c; ssize_t cLen; cLen = of_string_utf8_decode(_s->cString + i, |
︙ | ︙ | |||
1178 1179 1180 1181 1182 1183 1184 | count: _s->length itemSize: sizeof(of_unichar_t) freeWhenDone: true] items]; } - (const of_char32_t *)UTF32StringWithByteOrder: (of_byte_order_t)byteOrder { | | | 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 | count: _s->length itemSize: sizeof(of_unichar_t) freeWhenDone: true] items]; } - (const of_char32_t *)UTF32StringWithByteOrder: (of_byte_order_t)byteOrder { of_char32_t *buffer = of_alloc(_s->length + 1, sizeof(of_char32_t)); size_t i = 0, j = 0; while (i < _s->cStringLength) { of_char32_t c; ssize_t cLen; cLen = of_string_utf8_decode(_s->cString + i, |
︙ | ︙ |