559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
|
if (data == nil || data.itemSize != _itemSize)
@throw [OFInvalidArgumentException exception];
if ((searchLength = data.count) == 0)
return OFMakeRange(0, 0);
if (searchLength > range.length)
return OFMakeRange(OF_NOT_FOUND, 0);
search = data.items;
if (options & OF_DATA_SEARCH_BACKWARDS) {
for (size_t i = range.length - searchLength;; i--) {
if (memcmp(_items + i * _itemSize, search,
searchLength * _itemSize) == 0)
|
|
|
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
|
if (data == nil || data.itemSize != _itemSize)
@throw [OFInvalidArgumentException exception];
if ((searchLength = data.count) == 0)
return OFMakeRange(0, 0);
if (searchLength > range.length)
return OFMakeRange(OFNotFound, 0);
search = data.items;
if (options & OF_DATA_SEARCH_BACKWARDS) {
for (size_t i = range.length - searchLength;; i--) {
if (memcmp(_items + i * _itemSize, search,
searchLength * _itemSize) == 0)
|
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
|
for (size_t i = range.location;
i <= range.length - searchLength; i++)
if (memcmp(_items + i * _itemSize, search,
searchLength * _itemSize) == 0)
return OFMakeRange(i, searchLength);
}
return OFMakeRange(OF_NOT_FOUND, 0);
}
#ifdef OF_HAVE_FILES
- (void)writeToFile: (OFString *)path
{
OFFile *file = [[OFFile alloc] initWithPath: path mode: @"w"];
@try {
|
|
|
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
|
for (size_t i = range.location;
i <= range.length - searchLength; i++)
if (memcmp(_items + i * _itemSize, search,
searchLength * _itemSize) == 0)
return OFMakeRange(i, searchLength);
}
return OFMakeRange(OFNotFound, 0);
}
#ifdef OF_HAVE_FILES
- (void)writeToFile: (OFString *)path
{
OFFile *file = [[OFFile alloc] initWithPath: path mode: @"w"];
@try {
|