2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
|
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
|
-
+
|
inRange: of_range(0, length)];
} @catch (id e) {
free(buffer);
@throw e;
}
return [OFData dataWithItemsNoCopy: buffer
itemSize: sizeof(of_unichar_t)
count: length
itemSize: sizeof(of_unichar_t)
freeWhenDone: true].items;
}
- (const of_char16_t *)UTF16String
{
return [self UTF16StringWithByteOrder: OF_BYTE_ORDER_NATIVE];
}
|
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
|
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
|
-
+
|
} @catch (OFOutOfMemoryException *e) {
/* We don't care, as we only tried to make it smaller */
}
objc_autoreleasePoolPop(pool);
return [OFData dataWithItemsNoCopy: buffer
itemSize: sizeof(of_char16_t)
count: j + 1
itemSize: sizeof(of_char16_t)
freeWhenDone: true].items;
}
- (size_t)UTF16StringLength
{
const of_unichar_t *characters = self.characters;
size_t length, UTF16StringLength;
|
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
|
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
|
-
+
|
}
if (byteOrder != OF_BYTE_ORDER_NATIVE)
for (size_t i = 0; i < length; i++)
buffer[i] = OF_BSWAP32(buffer[i]);
return [OFData dataWithItemsNoCopy: buffer
itemSize: sizeof(of_char32_t)
count: length + 1
itemSize: sizeof(of_char32_t)
freeWhenDone: true].items;
}
- (OFData *)dataWithEncoding: (of_string_encoding_t)encoding
{
void *pool = objc_autoreleasePoolPush();
OFData *data =
|