236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
- (id const *)objects
{
size_t count = self.count;
id *buffer = of_alloc(count, sizeof(id));
@try {
[self getObjects: buffer inRange: OFMakeRange(0, count)];
return [[OFData dataWithItemsNoCopy: buffer
count: count
itemSize: sizeof(id)
freeWhenDone: true] items];
} @catch (id e) {
free(buffer);
|
|
|
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
- (id const *)objects
{
size_t count = self.count;
id *buffer = of_alloc(count, sizeof(id));
@try {
[self getObjects: buffer inRange: OFRangeMake(0, count)];
return [[OFData dataWithItemsNoCopy: buffer
count: count
itemSize: sizeof(id)
freeWhenDone: true] items];
} @catch (id e) {
free(buffer);
|
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
|
return new;
}
- (int)countByEnumeratingWithState: (OFFastEnumerationState *)state
objects: (id *)objects
count: (int)count
{
OFRange range = OFMakeRange(state->state, count);
if (range.length > SIZE_MAX - range.location)
@throw [OFOutOfRangeException exception];
if (range.location + range.length > self.count)
range.length = self.count - range.location;
|
|
|
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
|
return new;
}
- (int)countByEnumeratingWithState: (OFFastEnumerationState *)state
objects: (id *)objects
count: (int)count
{
OFRange range = OFRangeMake(state->state, count);
if (range.length > SIZE_MAX - range.location)
@throw [OFOutOfRangeException exception];
if (range.location + range.length > self.count)
range.length = self.count - range.location;
|