Index: src/OFArray.m ================================================================== --- src/OFArray.m +++ src/OFArray.m @@ -233,11 +233,11 @@ inRange: (of_range_t)range { size_t i; for (i = 0; i < range.length; i++) - buffer[i] = [self objectAtIndex: range.start + i]; + buffer[i] = [self objectAtIndex: range.location + i]; } - (id*)objects { OFObject *container; Index: src/OFArray_adjacent.m ================================================================== --- src/OFArray_adjacent.m +++ src/OFArray_adjacent.m @@ -210,15 +210,15 @@ inRange: (of_range_t)range { id *objects = [array cArray]; size_t i, count = [array count]; - if (range.start + range.length > count) + if (range.location + range.length > count) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; for (i = 0; i < range.length; i++) - buffer[i] = objects[range.start + i]; + buffer[i] = objects[range.location + i]; } - (size_t)indexOfObject: (id)object { id *objects = [array cArray]; @@ -252,14 +252,14 @@ return [OFArray_adjacentSubarray arrayWithArray: self range: range]; count = [array count]; - if (range.start + range.length > count) + if (range.location + range.length > count) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; - return [OFArray arrayWithObjects: (id*)[array cArray] + range.start + return [OFArray arrayWithObjects: (id*)[array cArray] + range.location count: range.length]; } - (BOOL)isEqual: (id)object { Index: src/OFArray_adjacentSubarray.m ================================================================== --- src/OFArray_adjacentSubarray.m +++ src/OFArray_adjacentSubarray.m @@ -21,11 +21,11 @@ #import "OFMutableArray_adjacent.h" @implementation OFArray_adjacentSubarray - (id*)objects { - return [array objects] + range.start; + return [array objects] + range.location; } - (BOOL)isEqual: (id)object { OFArray *otherArray; Index: src/OFArray_subarray.m ================================================================== --- src/OFArray_subarray.m +++ src/OFArray_subarray.m @@ -60,33 +60,33 @@ - (id)objectAtIndex: (size_t)index { if (index >= range.length) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; - return [array objectAtIndex: index + range.start]; + return [array objectAtIndex: index + range.location]; } - (void)getObjects: (id*)buffer inRange: (of_range_t)range_ { - if (range_.start + range_.length > range.length) + if (range_.location + range_.length > range.length) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; - range_.start += range.start; + range_.location += range.location; return [array getObjects: buffer inRange: range_]; } - (size_t)indexOfObject: (id)object { size_t index = [array indexOfObject: object]; - if (index < range.start) + if (index < range.location) return OF_INVALID_INDEX; - index -= range.start; + index -= range.location; if (index >= range.length) return OF_INVALID_INDEX; return index; @@ -94,26 +94,26 @@ - (size_t)indexOfObjectIdenticalTo: (id)object { size_t index = [array indexOfObjectIdenticalTo: object]; - if (index < range.start) + if (index < range.location) return OF_INVALID_INDEX; - index -= range.start; + index -= range.location; if (index >= range.length) return OF_INVALID_INDEX; return index; } - (OFArray*)objectsInRange: (of_range_t)range_ { - if (range_.start + range_.length > range.length) + if (range_.location + range_.length > range.length) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; - range_.start += range.start; + range_.location += range.location; return [array objectsInRange: range_]; } @end Index: src/OFDataArray.m ================================================================== --- src/OFDataArray.m +++ src/OFDataArray.m @@ -375,16 +375,16 @@ [self removeItemsInRange: of_range(index, 1)]; } - (void)removeItemsInRange: (of_range_t)range { - if (range.start + range.length > count) + if (range.location + range.length > count) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; - memmove(data + range.start * itemSize, - data + (range.start + range.length) * itemSize, - (count - range.start - range.length) * itemSize); + memmove(data + range.location * itemSize, + data + (range.location + range.length) * itemSize, + (count - range.location - range.length) * itemSize); count -= range.length; @try { data = [self resizeMemory: data size: itemSize @@ -638,16 +638,16 @@ - (void)removeItemsInRange: (of_range_t)range { size_t newSize, lastPageByte; - if (range.start + range.length > count) + if (range.location + range.length > count) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; - memmove(data + range.start * itemSize, - data + (range.start + range.length) * itemSize, - (count - range.start - range.length) * itemSize); + memmove(data + range.location * itemSize, + data + (range.location + range.length) * itemSize, + (count - range.location - range.length) * itemSize); count -= range.length; lastPageByte = of_pagesize - 1; newSize = (count * itemSize + lastPageByte) & ~lastPageByte; Index: src/OFHTTPRequest.m ================================================================== --- src/OFHTTPRequest.m +++ src/OFHTTPRequest.m @@ -411,13 +411,13 @@ @throw [OFInvalidServerReplyException exceptionWithClass: [self class]]; } range = [line rangeOfString: @";"]; - if (range.start != OF_INVALID_INDEX) + if (range.location != OF_INVALID_INDEX) line = [line substringWithRange: - of_range(0, range.start)]; + of_range(0, range.location)]; @try { toRead = (size_t)[line hexadecimalValue]; } @catch (OFInvalidFormatException *e) { Index: src/OFMutableArray.m ================================================================== --- src/OFMutableArray.m +++ src/OFMutableArray.m @@ -294,11 +294,11 @@ - (void)removeObjectsInRange: (of_range_t)range { size_t i; for (i = 0; i < range.length; i++) - [self removeObjectAtIndex: range.start]; + [self removeObjectAtIndex: range.location]; } - (void)removeLastObject { size_t count = [self count]; Index: src/OFMutableArray_adjacent.m ================================================================== --- src/OFMutableArray_adjacent.m +++ src/OFMutableArray_adjacent.m @@ -174,16 +174,16 @@ - (void)removeObjectsInRange: (of_range_t)range { id *objects = [array cArray], *copy; size_t i, count = [array count]; - if (range.length > count - range.start) + if (range.length > count - range.location) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; copy = [self allocMemoryWithSize: sizeof(*copy) count: range.length]; - memcpy(copy, objects + range.start, range.length * sizeof(id)); + memcpy(copy, objects + range.location, range.length * sizeof(id)); @try { [array removeItemsInRange: range]; mutations++; Index: src/OFMutableString.m ================================================================== --- src/OFMutableString.m +++ src/OFMutableString.m @@ -448,11 +448,11 @@ - (void)replaceCharactersInRange: (of_range_t)range withString: (OFString*)replacement { [self deleteCharactersInRange: range]; [self insertString: replacement - atIndex: range.start]; + atIndex: range.location]; } - (void)replaceOccurrencesOfString: (OFString*)string withString: (OFString*)replacement { @@ -470,11 +470,11 @@ const of_unichar_t *searchString = [string unicodeString]; size_t searchLength = [string length]; size_t replacementLength = [replacement length]; size_t i; - if (range.start + range.length > [self length]) + if (range.location + range.length > [self length]) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; if (searchLength > range.length) { objc_autoreleasePoolPop(pool); return; @@ -481,11 +481,11 @@ } pool2 = objc_autoreleasePoolPush(); unicodeString = [self unicodeString]; - for (i = range.start; i <= range.length - searchLength; i++) { + for (i = range.location; i <= range.length - searchLength; i++) { if (memcmp(unicodeString + i, searchString, searchLength * sizeof(of_unichar_t))) continue; [self replaceCharactersInRange: of_range(i, searchLength) Index: src/OFMutableString_UTF8.m ================================================================== --- src/OFMutableString_UTF8.m +++ src/OFMutableString_UTF8.m @@ -528,12 +528,12 @@ s->isUTF8 = YES; } - (void)deleteCharactersInRange: (of_range_t)range { - size_t start = range.start; - size_t end = range.start + range.length; + size_t start = range.location; + size_t end = range.location + range.length; if (end > s->length) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; s->hashed = NO; @@ -559,12 +559,12 @@ } - (void)replaceCharactersInRange: (of_range_t)range withString: (OFString*)replacement { - size_t start = range.start; - size_t end = range.start + range.length; + size_t start = range.location; + size_t end = range.location + range.length; size_t newCStringLength, newLength; if (end > s->length) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; @@ -603,27 +603,29 @@ size_t replacementLength = [replacement UTF8StringLength]; size_t i, last, newCStringLength, newLength; char *newCString; if (s->isUTF8) { - range.start = of_string_utf8_get_position(s->cString, - range.start, s->cStringLength); - range.length = of_string_utf8_get_position(s->cString, - range.start + range.length, s->cStringLength) - range.start; + range.location = of_string_utf8_get_position(s->cString, + range.location, s->cStringLength); + range.length = of_string_utf8_get_position( + s->cString + range.location, range.length, + s->cStringLength - range.location); } - if (range.start + range.length > [self UTF8StringLength]) + if (range.location + range.length > [self UTF8StringLength]) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; if ([string UTF8StringLength] > range.length) return; newCString = NULL; newCStringLength = 0; newLength = s->length; - for (i = range.start, last = 0; i <= range.length - searchLength; i++) { + last = 0; + for (i = range.location; i <= range.length - searchLength; i++) { if (memcmp(s->cString + i, searchString, searchLength)) continue; @try { newCString = [self Index: src/OFNull.m ================================================================== --- src/OFNull.m +++ src/OFNull.m @@ -26,17 +26,17 @@ #import "autorelease.h" static OFNull *null = nil; @implementation OFNull ++ (void)initialize +{ + null = [[self alloc] init]; +} + + (OFNull*)null { - if (null != nil) - return null; - - null = [[self alloc] init]; - return null; } - initWithSerialization: (OFXMLElement*)element { Index: src/OFObject.h ================================================================== --- src/OFObject.h +++ src/OFObject.h @@ -125,11 +125,11 @@ /** * \brief A range. */ typedef struct of_range_t { /// The start of the range - size_t start; + size_t location; /// The length of the range size_t length; } of_range_t; /** Index: src/OFString.m ================================================================== --- src/OFString.m +++ src/OFString.m @@ -927,11 +927,11 @@ inRange: (of_range_t)range { size_t i; for (i = 0; i < range.length; i++) - buffer[i] = [self characterAtIndex: range.start + i]; + buffer[i] = [self characterAtIndex: range.location + i]; } - (BOOL)isEqual: (id)object { void *pool; @@ -1205,11 +1205,11 @@ if (options & OF_STRING_SEARCH_BACKWARDS) { for (i = range.length - searchLength;; i--) { if (!memcmp(unicodeString + i, searchString, searchLength * sizeof(of_unichar_t))) { objc_autoreleasePoolPop(pool); - return of_range(range.start + i, + return of_range(range.location + i, searchLength); } /* No match and we're at the last character */ if (i == 0) @@ -1218,11 +1218,11 @@ } else { for (i = 0; i <= range.length - searchLength; i++) { if (!memcmp(unicodeString + i, searchString, searchLength * sizeof(of_unichar_t))) { objc_autoreleasePoolPop(pool); - return of_range(range.start + i, + return of_range(range.location + i, searchLength); } } } } @finally { @@ -1267,17 +1267,17 @@ - (OFString*)substringWithRange: (of_range_t)range { void *pool; OFString *ret; - if (range.start + range.length > [self length]) + if (range.location + range.length > [self length]) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; pool = objc_autoreleasePoolPush(); ret = [[OFString alloc] - initWithUnicodeString: [self unicodeString] + range.start + initWithUnicodeString: [self unicodeString] + range.location length: range.length]; objc_autoreleasePoolPop(pool); return [ret autorelease]; } Index: src/OFString_UTF8.m ================================================================== --- src/OFString_UTF8.m +++ src/OFString_UTF8.m @@ -1029,11 +1029,11 @@ { /* TODO: Could be slightly optimized */ void *pool = objc_autoreleasePoolPush(); const of_unichar_t *unicodeString = [self unicodeString]; - memcpy(buffer, unicodeString + range.start, + memcpy(buffer, unicodeString + range.location, range.length * sizeof(of_unichar_t)); objc_autoreleasePoolPop(pool); } @@ -1045,16 +1045,16 @@ size_t i, cStringLength = [string UTF8StringLength]; size_t rangeStart, rangeLength; if (s->isUTF8) { rangeStart = of_string_utf8_get_position( - s->cString, range.start, s->cStringLength); + s->cString, range.location, s->cStringLength); rangeLength = of_string_utf8_get_position( s->cString + rangeStart, range.length, s->cStringLength - rangeStart); } else { - rangeStart = range.start; + rangeStart = range.location; rangeLength = range.length; } if (cStringLength == 0) return of_range(0, 0); @@ -1065,11 +1065,11 @@ if (options & OF_STRING_SEARCH_BACKWARDS) { for (i = rangeLength - cStringLength;; i--) { if (!memcmp(s->cString + rangeStart + i, cString, cStringLength)) { - range.start += of_string_utf8_get_index( + range.location += of_string_utf8_get_index( s->cString + rangeStart, i); range.length = [string length]; return range; } @@ -1080,11 +1080,11 @@ } } else { for (i = 0; i <= rangeLength - cStringLength; i++) { if (!memcmp(s->cString + rangeStart + i, cString, cStringLength)) { - range.start += of_string_utf8_get_index( + range.location += of_string_utf8_get_index( s->cString + rangeStart, i); range.length = [string length]; return range; } @@ -1112,12 +1112,12 @@ return NO; } - (OFString*)substringWithRange: (of_range_t)range { - size_t start = range.start; - size_t end = range.start + range.length; + size_t start = range.location; + size_t end = range.location + range.length; if (end > s->length) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; if (s->isUTF8) { Index: tests/OFStringTests.m ================================================================== --- tests/OFStringTests.m +++ tests/OFStringTests.m @@ -220,22 +220,22 @@ TEST(@"-[appendFormat:]", R(([s[0] appendFormat: @"%02X", 15])) && [s[0] isEqual: @"test:1230F"]) TEST(@"-[rangeOfString:]", - [@"π„žΓΆΓΆ" rangeOfString: @"ΓΆΓΆ"].start == 1 && - [@"π„žΓΆΓΆ" rangeOfString: @"ΓΆ"].start == 1 && - [@"π„žΓΆΓΆ" rangeOfString: @"π„ž"].start == 0 && - [@"π„žΓΆΓΆ" rangeOfString: @"x"].start == OF_INVALID_INDEX && + [@"π„žΓΆΓΆ" rangeOfString: @"ΓΆΓΆ"].location == 1 && + [@"π„žΓΆΓΆ" rangeOfString: @"ΓΆ"].location == 1 && + [@"π„žΓΆΓΆ" rangeOfString: @"π„ž"].location == 0 && + [@"π„žΓΆΓΆ" rangeOfString: @"x"].location == OF_INVALID_INDEX && [@"π„žΓΆΓΆ" rangeOfString: @"ΓΆΓΆ" - options: OF_STRING_SEARCH_BACKWARDS].start == 1 && + options: OF_STRING_SEARCH_BACKWARDS].location == 1 && [@"π„žΓΆΓΆ" rangeOfString: @"ΓΆ" - options: OF_STRING_SEARCH_BACKWARDS].start == 2 && + options: OF_STRING_SEARCH_BACKWARDS].location == 2 && [@"π„žΓΆΓΆ" rangeOfString: @"π„ž" - options: OF_STRING_SEARCH_BACKWARDS].start == 0 && + options: OF_STRING_SEARCH_BACKWARDS].location == 0 && [@"π„žΓΆΓΆ" rangeOfString: @"x" - options: OF_STRING_SEARCH_BACKWARDS].start == + options: OF_STRING_SEARCH_BACKWARDS].location == OF_INVALID_INDEX) TEST(@"-[substringWithRange:]", [[@"π„žΓΆΓΆ" substringWithRange: of_range(1, 1)] isEqual: @"ΓΆ"] && [[@"π„žΓΆΓΆ" substringWithRange: of_range(3, 0)] isEqual: @""])