Comment: | Make return type of -[OFArray objects] const
After all, this might (and does for OFArray_adjacent!) return an |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
68d32a92c1d30f1ccb36fc8ed1a302d2 |
User & Date: | js on 2014-06-16 15:06:26 |
Other Links: | manifest | tags |
2014-06-16
| ||
18:35 | OFINICategory: Add support for arrays check-in: 9555835784 user: js tags: trunk | |
15:06 | Make return type of -[OFArray objects] const check-in: 68d32a92c1 user: js tags: trunk | |
2014-06-14
| ||
09:44 | OFINIFile: Add support for different encodings check-in: 44de69ef31 user: js tags: trunk | |
Modified src/OFArray.h from [4a0b0e23ef] to [2851f0d1d5].
︙ | ︙ | |||
199 200 201 202 203 204 205 | inRange: (of_range_t)range; /*! * @brief Returns the objects of the array as a C array. * * @return The objects of the array as a C array */ | | | 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 | inRange: (of_range_t)range; /*! * @brief Returns the objects of the array as a C array. * * @return The objects of the array as a C array */ - (id const*)objects; /*! * @brief Returns the index of the first object that is equivalent to the * specified object or `OF_NOT_FOUND` if it was not found. * * @param object The object whose index is returned * @return The index of the first object equivalent to the specified object |
︙ | ︙ |
Modified src/OFArray.m from [ff677666a5] to [1814e666e5].
︙ | ︙ | |||
239 240 241 242 243 244 245 | { size_t i; for (i = 0; i < range.length; i++) buffer[i] = [self objectAtIndex: range.location + i]; } | | | 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 | { size_t i; for (i = 0; i < range.length; i++) buffer[i] = [self objectAtIndex: range.location + i]; } - (id const*)objects { OFObject *container; size_t count; id *buffer; container = [[[OFObject alloc] init] autorelease]; count = [self count]; |
︙ | ︙ | |||
394 395 396 397 398 399 400 | - (OFString*)componentsJoinedByString: (OFString*)separator usingSelector: (SEL)selector options: (int)options { void *pool; OFMutableString *ret; | | | 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 | - (OFString*)componentsJoinedByString: (OFString*)separator usingSelector: (SEL)selector options: (int)options { void *pool; OFMutableString *ret; id const *objects; size_t i, count; if (separator == nil) @throw [OFInvalidArgumentException exception]; count = [self count]; |
︙ | ︙ | |||
472 473 474 475 476 477 478 | return false; return true; } - (uint32_t)hash { | | | 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 | return false; return true; } - (uint32_t)hash { id const *objects = [self objects]; size_t i, count = [self count]; uint32_t hash; OF_HASH_INIT(hash); for (i = 0; i < count; i++) OF_HASH_ADD_HASH(hash, [objects[i] hash]); |
︙ | ︙ | |||
518 519 520 521 522 523 524 | return [ret autorelease]; } - (OFXMLElement*)XMLElementBySerializing { void *pool = objc_autoreleasePoolPush(); OFXMLElement *element; | | | 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 | return [ret autorelease]; } - (OFXMLElement*)XMLElementBySerializing { void *pool = objc_autoreleasePoolPush(); OFXMLElement *element; id <OFSerialization> const *objects = [self objects]; size_t i, count = [self count]; if ([self isKindOfClass: [OFMutableArray class]]) element = [OFXMLElement elementWithName: @"OFMutableArray" namespace: OF_SERIALIZATION_NS]; else element = [OFXMLElement elementWithName: @"OFArray" |
︙ | ︙ | |||
672 673 674 675 676 677 678 | objc_autoreleasePoolPop(pool); return data; } - (void)makeObjectsPerformSelector: (SEL)selector { | | | | 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 | objc_autoreleasePoolPop(pool); return data; } - (void)makeObjectsPerformSelector: (SEL)selector { id const *objects = [self objects]; size_t i, count = [self count]; for (i = 0; i < count; i++) [objects[i] performSelector: selector]; } - (void)makeObjectsPerformSelector: (SEL)selector withObject: (id)object { id const *objects = [self objects]; size_t i, count = [self count]; for (i = 0; i < count; i++) [objects[i] performSelector: selector withObject: object]; } |
︙ | ︙ |
Modified src/OFArray_adjacent.m from [794a332a64] to [99931c4432].
︙ | ︙ | |||
86 87 88 89 90 91 92 | } return self; } - initWithArray: (OFArray*)array { | | | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | } return self; } - initWithArray: (OFArray*)array { id const *objects; size_t i, count; self = [super init]; if (array == nil) return self; |
︙ | ︙ | |||
202 203 204 205 206 207 208 | } - (size_t)count { return [_array count]; } | | | 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 | } - (size_t)count { return [_array count]; } - (id const*)objects { return [_array items]; } - (id)objectAtIndex: (size_t)index { return *((id*)[_array itemAtIndex: index]); |
︙ | ︙ | |||
286 287 288 289 290 291 292 | return [OFArray_adjacentSubarray arrayWithArray: self range: range]; } - (bool)isEqual: (id)object { OFArray *otherArray; | | | 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 | return [OFArray_adjacentSubarray arrayWithArray: self range: range]; } - (bool)isEqual: (id)object { OFArray *otherArray; id const *objects, *otherObjects; size_t i, count; if ([object class] != [OFArray_adjacent class] && [object class] != [OFMutableArray_adjacent class] && [object class] != [OFArray_adjacentSubarray class]) return [super isEqual: object]; |
︙ | ︙ |
Modified src/OFArray_adjacentSubarray.m from [e067dd075f] to [e44a0576ae].
︙ | ︙ | |||
17 18 19 20 21 22 23 | #include "config.h" #import "OFArray_adjacentSubarray.h" #import "OFArray_adjacent.h" #import "OFMutableArray_adjacent.h" @implementation OFArray_adjacentSubarray | | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include "config.h" #import "OFArray_adjacentSubarray.h" #import "OFArray_adjacent.h" #import "OFMutableArray_adjacent.h" @implementation OFArray_adjacentSubarray - (const id*)objects { return [_array objects] + _range.location; } - (bool)isEqual: (id)object { OFArray *otherArray; id const *objects, *otherObjects; size_t i; if ([object class] != [OFArray_adjacent class] && [object class] != [OFMutableArray_adjacent class] && [object class] != [OFArray_adjacentSubarray class]) return [super isEqual: object]; |
︙ | ︙ | |||
51 52 53 54 55 56 57 | return true; } #ifdef OF_HAVE_BLOCKS - (void)enumerateObjectsUsingBlock: (of_array_enumeration_block_t)block { | | | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | return true; } #ifdef OF_HAVE_BLOCKS - (void)enumerateObjectsUsingBlock: (of_array_enumeration_block_t)block { id const *objects = [self objects]; size_t i; bool stop = false; for (i = 0; i < _range.length && !stop; i++) block(objects[i], i, &stop); } #endif @end |
Modified src/OFCountedSet_hashtable.m from [f3bb080962] to [4285e1f843].
︙ | ︙ | |||
77 78 79 80 81 82 83 | } - initWithArray: (OFArray*)array { self = [self init]; @try { | | | 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | } - initWithArray: (OFArray*)array { self = [self init]; @try { id const *objects = [array objects]; size_t i, count = [array count]; for (i = 0; i < count; i++) [self addObject: objects[i]]; } @catch (id e) { [self release]; @throw e; |
︙ | ︙ |
Modified src/OFDictionary.m from [a9ccdce0b3] to [64a914391d].
︙ | ︙ | |||
219 220 221 222 223 224 225 | return [self initWithKeysAndObjects: key, object, nil]; } - initWithObjects: (OFArray*)objects_ forKeys: (OFArray*)keys_ { | | | 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 | return [self initWithKeysAndObjects: key, object, nil]; } - initWithObjects: (OFArray*)objects_ forKeys: (OFArray*)keys_ { id const *objects, *keys; size_t count; @try { count = [objects_ count]; if (count != [keys_ count]) @throw [OFInvalidArgumentException exception]; |
︙ | ︙ |
Modified src/OFKernelEventObserver.m from [fb20fdd1d1] to [cb71953a13].
︙ | ︙ | |||
303 304 305 306 307 308 309 | - (void)OF_processQueue { #ifdef OF_HAVE_THREADS [_mutex lock]; #endif @try { | | | 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 | - (void)OF_processQueue { #ifdef OF_HAVE_THREADS [_mutex lock]; #endif @try { id const *queueObjects = [_queue objects]; int *queueInfoItems = [_queueInfo items]; int *queueFDsItems = [_queueFDs items]; size_t i, count = [_queue count]; for (i = 0; i < count; i++) { id object = queueObjects[i]; int action = queueInfoItems[i]; |
︙ | ︙ | |||
397 398 399 400 401 402 403 | OF_ENSURE(sendto(_cancelFD[1], "", 1, 0, (struct sockaddr*)&_cancelAddr, sizeof(_cancelAddr)) > 0); #endif } - (bool)OF_processCache { | | | 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 | OF_ENSURE(sendto(_cancelFD[1], "", 1, 0, (struct sockaddr*)&_cancelAddr, sizeof(_cancelAddr)) > 0); #endif } - (bool)OF_processCache { id const *objects = [_readObjects objects]; size_t i, count = [_readObjects count]; bool foundInCache = false; for (i = 0; i < count; i++) { if ([objects[i] isKindOfClass: [OFStream class]] && [objects[i] hasDataInReadBuffer] && ![objects[i] OF_isWaitingForDelimiter]) { |
︙ | ︙ |
Modified src/OFKernelEventObserver_select.m from [434ba010aa] to [71a3935230].
︙ | ︙ | |||
64 65 66 67 68 69 70 | { FD_CLR(fd, &_writeFDs); } - (bool)observeForTimeInterval: (of_time_interval_t)timeInterval { void *pool = objc_autoreleasePoolPush(); | | | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | { FD_CLR(fd, &_writeFDs); } - (bool)observeForTimeInterval: (of_time_interval_t)timeInterval { void *pool = objc_autoreleasePoolPush(); id const *objects; fd_set readFDs; fd_set writeFDs; struct timeval timeout; size_t i, count, realEvents = 0; [self OF_processQueue]; |
︙ | ︙ |
Modified src/OFMutableArray_adjacent.m from [1c77ed7f95] to [873b95dc7f].
︙ | ︙ | |||
75 76 77 78 79 80 81 | _mutations++; } - (void)insertObjectsFromArray: (OFArray*)array atIndex: (size_t)index { | | | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | _mutations++; } - (void)insertObjectsFromArray: (OFArray*)array atIndex: (size_t)index { id const *objects = [array objects]; size_t i, count = [array count]; @try { [_array insertItems: objects atIndex: index count: count]; } @catch (OFOutOfRangeException *e) { |
︙ | ︙ |
Modified src/OFProcess.m from [521a1f3185] to [bf59320c7a].
︙ | ︙ | |||
139 140 141 142 143 144 145 | #ifndef _WIN32 if (pipe(_readPipe) != 0 || pipe(_writePipe) != 0) @throw [OFInitializationFailedException exceptionWithClass: [self class]]; switch ((_pid = fork())) { case 0:; | | | 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | #ifndef _WIN32 if (pipe(_readPipe) != 0 || pipe(_writePipe) != 0) @throw [OFInitializationFailedException exceptionWithClass: [self class]]; switch ((_pid = fork())) { case 0:; OFString *const *objects = [arguments objects]; size_t i, count = [arguments count]; char **argv; of_string_encoding_t encoding; argv = [self allocMemoryWithSize: sizeof(char*) count: count + 2]; |
︙ | ︙ |
Modified src/OFXMLElement.m from [e9f05c1971] to [9625f21669].
︙ | ︙ | |||
419 420 421 422 423 424 425 | objc_autoreleasePoolPop(pool); } - (OFString*)stringValue { OFMutableString *ret; | | | 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 | objc_autoreleasePoolPop(pool); } - (OFString*)stringValue { OFMutableString *ret; OFXMLElement *const *objects; size_t i, count = [_children count]; if (count == 0) return @""; ret = [OFMutableString string]; objects = [_children objects]; |
︙ | ︙ | |||
450 451 452 453 454 455 456 | indentation: (unsigned int)indentation level: (unsigned int)level { void *pool; char *cString; size_t length, i, j, attributesCount; OFString *prefix, *parentPrefix; | | | 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 | indentation: (unsigned int)indentation level: (unsigned int)level { void *pool; char *cString; size_t length, i, j, attributesCount; OFString *prefix, *parentPrefix; OFXMLAttribute *const *attributesObjects; OFString *ret; OFString *defaultNS; pool = objc_autoreleasePoolPush(); parentPrefix = [allNamespaces objectForKey: (parent != nil && parent->_namespace != nil |
︙ | ︙ | |||
591 592 593 594 595 596 597 | cString[i++] = '\''; objc_autoreleasePoolPop(pool2); } /* Childen */ if (_children != nil) { | | | 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 | cString[i++] = '\''; objc_autoreleasePoolPop(pool2); } /* Childen */ if (_children != nil) { OFXMLElement *const *childrenObjects = [_children objects]; size_t childrenCount = [_children count]; OFDataArray *tmp = [OFDataArray dataArray]; bool indent; if (indentation > 0) { indent = true; |
︙ | ︙ | |||
819 820 821 822 823 824 825 | stringValue: stringValue]]; objc_autoreleasePoolPop(pool); } - (OFXMLAttribute*)attributeForName: (OFString*)attributeName { | | | | | | 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 | stringValue: stringValue]]; objc_autoreleasePoolPop(pool); } - (OFXMLAttribute*)attributeForName: (OFString*)attributeName { OFXMLAttribute *const *objects = [_attributes objects]; size_t i, count = [_attributes count]; for (i = 0; i < count; i++) if (objects[i]->_namespace == nil && [objects[i]->_name isEqual: attributeName]) return [[objects[i] retain] autorelease]; return nil; } - (OFXMLAttribute*)attributeForName: (OFString*)attributeName namespace: (OFString*)attributeNS { OFXMLAttribute *const *objects; size_t i, count; if (attributeNS == nil) return [self attributeForName: attributeName]; objects = [_attributes objects]; count = [_attributes count]; for (i = 0; i < count; i++) if ([objects[i]->_namespace isEqual: attributeNS] && [objects[i]->_name isEqual: attributeName]) return [[objects[i] retain] autorelease]; return nil; } - (void)removeAttributeForName: (OFString*)attributeName { OFXMLAttribute *const *objects = [_attributes objects]; size_t i, count = [_attributes count]; for (i = 0; i < count; i++) { if (objects[i]->_namespace == nil && [objects[i]->_name isEqual: attributeName]) { [_attributes removeObjectAtIndex: i]; return; } } } - (void)removeAttributeForName: (OFString*)attributeName namespace: (OFString*)attributeNS { OFXMLAttribute *const *objects; size_t i, count; if (attributeNS == nil) { [self removeAttributeForName: attributeName]; return; } |
︙ | ︙ | |||
1010 1011 1012 1013 1014 1015 1016 | return [[self elementsForName: elementName namespace: elementNS] firstObject]; } - (OFArray*)elements { OFMutableArray *ret = [OFMutableArray array]; | | | | | | 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 | return [[self elementsForName: elementName namespace: elementNS] firstObject]; } - (OFArray*)elements { OFMutableArray *ret = [OFMutableArray array]; OFXMLElement *const *objects = [_children objects]; size_t i, count = [_children count]; for (i = 0; i < count; i++) if ([objects[i] isKindOfClass: [OFXMLElement class]]) [ret addObject: objects[i]]; [ret makeImmutable]; return ret; } - (OFArray*)elementsForName: (OFString*)elementName { OFMutableArray *ret = [OFMutableArray array]; OFXMLElement *const *objects = [_children objects]; size_t i, count = [_children count]; for (i = 0; i < count; i++) if ([objects[i] isKindOfClass: [OFXMLElement class]] && objects[i]->_namespace == nil && [objects[i]->_name isEqual: elementName]) [ret addObject: objects[i]]; [ret makeImmutable]; return ret; } - (OFArray*)elementsForNamespace: (OFString*)elementNS { OFMutableArray *ret = [OFMutableArray array]; OFXMLElement *const *objects = [_children objects]; size_t i, count = [_children count]; for (i = 0; i < count; i++) if ([objects[i] isKindOfClass: [OFXMLElement class]] && objects[i]->_name != nil && [objects[i]->_namespace isEqual: elementNS]) [ret addObject: objects[i]]; [ret makeImmutable]; return ret; } - (OFArray*)elementsForName: (OFString*)elementName namespace: (OFString*)elementNS { OFMutableArray *ret; OFXMLElement *const *objects; size_t i, count; if (elementNS == nil) return [self elementsForName: elementName]; ret = [OFMutableArray array]; objects = [_children objects]; |
︙ | ︙ |
Modified src/OFXMLElementBuilder.m from [da1329e0fa] to [119bcfbb79].
︙ | ︙ | |||
85 86 87 88 89 90 91 | - (void)parser: (OFXMLParser*)parser didStartElement: (OFString*)name prefix: (OFString*)prefix namespace: (OFString*)namespace attributes: (OFArray*)attributes { OFXMLElement *element; | | | 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | - (void)parser: (OFXMLParser*)parser didStartElement: (OFString*)name prefix: (OFString*)prefix namespace: (OFString*)namespace attributes: (OFArray*)attributes { OFXMLElement *element; OFXMLAttribute *const *objects; size_t i, count; element = [OFXMLElement elementWithName: name namespace: namespace]; objects = [attributes objects]; count = [attributes count]; |
︙ | ︙ |
Modified src/OFXMLParser.m from [e7da32bd09] to [75261e507a].
︙ | ︙ | |||
95 96 97 98 99 100 101 | return ret; } static OFString* namespaceForPrefix(OFString *prefix, OFArray *namespaces) { | | | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | return ret; } static OFString* namespaceForPrefix(OFString *prefix, OFArray *namespaces) { OFDictionary *const *objects = [namespaces objects]; ssize_t i; if (prefix == nil) prefix = @""; for (i = [namespaces count] - 1; i >= 0; i--) { OFString *tmp; |
︙ | ︙ | |||
696 697 698 699 700 701 702 | } /* Inside a tag, name found */ - (void)OF_inTagState { void *pool; OFString *namespace; | | | 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 | } /* Inside a tag, name found */ - (void)OF_inTagState { void *pool; OFString *namespace; OFXMLAttribute *const *attributesObjects; size_t j, attributesCount; if (_data[_i] != '>' && _data[_i] != '/') { if (_data[_i] != ' ' && _data[_i] != '\t' && _data[_i] != '\n' && _data[_i] != '\r') { _last = _i; _state = OF_XMLPARSER_IN_ATTRIBUTE_NAME; |
︙ | ︙ |