Overview
Comment: | Add -[containsObject(IdenticalTo):] to OFCollection. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
0a6e073938a5e64ed28247fc5592f358 |
User & Date: | js on 2011-02-07 19:22:19 |
Other Links: | manifest | tags |
Context
2011-02-07
| ||
21:05 | of_vasprintf: Preserve exceptions that happen in -[description]. check-in: 151463e32a user: js tags: trunk | |
19:22 | Add -[containsObject(IdenticalTo):] to OFCollection. check-in: 0a6e073938 user: js tags: trunk | |
14:01 | Improve Unicode table generator. check-in: 39a089fdbf user: js tags: trunk | |
Changes
Modified src/OFArray.m from [7a4da4f986] to [e3c5e67130].
︙ | ︙ | |||
241 242 243 244 245 246 247 248 249 250 251 252 253 254 | for (i = 0; i < count; i++) if (objs[i] == obj) return i; return SIZE_MAX; } - (id)firstObject { id *first = [array firstItem]; return (first != NULL ? *first : nil); } | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 | for (i = 0; i < count; i++) if (objs[i] == obj) return i; return SIZE_MAX; } - (BOOL)containsObject: (id)obj { id *objs = [array cArray]; size_t i, count = [array count]; if (objs == NULL) return NO; for (i = 0; i < count; i++) if ([objs[i] isEqual: obj]) return YES; return NO; } - (BOOL)containsObjectIdenticalTo: (id)obj { id *objs = [array cArray]; size_t i, count = [array count]; if (objs == NULL) return NO; for (i = 0; i < count; i++) if (objs[i] == obj) return YES; return NO; } - (id)firstObject { id *first = [array firstItem]; return (first != NULL ? *first : nil); } |
︙ | ︙ |
Modified src/OFCollection.h from [52cb53f930] to [1cb52c7504].
︙ | ︙ | |||
29 30 31 32 33 34 35 36 | */ - (size_t)count; /** * \returns An OFEnumerator to enumerate through all objects of the collection */ - (OFEnumerator*)objectEnumerator; @end | > > > > > > > > > > > | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | */ - (size_t)count; /** * \returns An OFEnumerator to enumerate through all objects of the collection */ - (OFEnumerator*)objectEnumerator; /** * \return A boolean whether the collection contains the specified object. */ - (BOOL)containsObject: (id)obj; /** * \return A boolean whether the collection contains an object with the * specified address. */ - (BOOL)containsObjectIdenticalTo: (id)obj; @end |
Modified src/OFDictionary.m from [3fafb5ab84] to [484283a6ae].
︙ | ︙ | |||
517 518 519 520 521 522 523 | { uint32_t i; if ([dict count] != count) return NO; for (i = 0; i < size; i++) | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 | { uint32_t i; if ([dict count] != count) return NO; for (i = 0; i < size; i++) if (data[i] != NULL && data[i] != DELETED && ![[dict objectForKey: data[i]->key] isEqual: data[i]->object]) return NO; return YES; } - (BOOL)containsObject: (id)obj { uint32_t i; if (count == 0) return NO; for (i = 0; i < size; i++) if (data[i] != NULL && data[i] != DELETED && [data[i]->object isEqual: obj]) return YES; return NO; } - (BOOL)containsObjectIdenticalTo: (id)obj { uint32_t i; if (count == 0) return NO; for (i = 0; i < size; i++) if (data[i] != NULL && data[i] != DELETED && data[i]->object == obj) return YES; return NO; } - (int)countByEnumeratingWithState: (of_fast_enumeration_state_t*)state objects: (id*)objects count: (int)count_ { int i; |
︙ | ︙ |
Modified src/OFList.m from [01320f9714] to [e1a0eb97da].
︙ | ︙ | |||
202 203 204 205 206 207 208 209 210 211 212 213 214 215 | return NO; /* One is bigger than the other although we checked the count */ assert(iter == NULL && iter2 == NULL); return YES; } - copy { OFList *new = [[OFList alloc] init]; of_list_object_t *iter, *o, *prev; o = NULL; | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 | return NO; /* One is bigger than the other although we checked the count */ assert(iter == NULL && iter2 == NULL); return YES; } - (BOOL)containsObject: (id)obj { of_list_object_t *iter; if (count == 0) return NO; for (iter = firstListObject; iter != NULL; iter = iter->next) if ([iter->object isEqual: obj]) return YES; return NO; } - (BOOL)containsObjectIdenticalTo: (id)obj { of_list_object_t *iter; if (count == 0) return NO; for (iter = firstListObject; iter != NULL; iter = iter->next) if (iter->object == obj) return YES; return NO; } - copy { OFList *new = [[OFList alloc] init]; of_list_object_t *iter, *o, *prev; o = NULL; |
︙ | ︙ |
Modified tests/OFArrayTests.m from [304a51157c] to [6c578400a8].
︙ | ︙ | |||
75 76 77 78 79 80 81 82 83 84 85 86 87 88 | [[a[0] objectAtIndex: 0] isEqual: c_ary[0]] && [[a[0] objectAtIndex: 1] isEqual: c_ary[1]] && [[a[0] objectAtIndex: 2] isEqual: c_ary[2]] && [[a[1] objectAtIndex: 0] isEqual: c_ary[0]] && [[a[1] objectAtIndex: 1] isEqual: c_ary[1]] && [[a[1] objectAtIndex: 2] isEqual: c_ary[2]]) TEST(@"-[indexOfObject:]", [a[0] indexOfObject: c_ary[1]] == 1) TEST(@"-[indexOfObjectIdenticalTo:]", [a[1] indexOfObjectIdenticalTo: c_ary[1]] == 1) TEST(@"-[objectsFromIndex:toIndex", [[a[0] objectsFromIndex: 1 | > > > > > > > > > | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | [[a[0] objectAtIndex: 0] isEqual: c_ary[0]] && [[a[0] objectAtIndex: 1] isEqual: c_ary[1]] && [[a[0] objectAtIndex: 2] isEqual: c_ary[2]] && [[a[1] objectAtIndex: 0] isEqual: c_ary[0]] && [[a[1] objectAtIndex: 1] isEqual: c_ary[1]] && [[a[1] objectAtIndex: 2] isEqual: c_ary[2]]) TEST(@"-[containsObject:]", [a[0] containsObject: c_ary[1]] == YES && [a[0] containsObject: @"nonexistant"] == NO) TEST(@"-[containsObject:]", [a[0] containsObjectIdenticalTo: c_ary[1]] == YES && [a[0] containsObjectIdenticalTo: [OFString stringWithString: c_ary[1]]] == NO) TEST(@"-[indexOfObject:]", [a[0] indexOfObject: c_ary[1]] == 1) TEST(@"-[indexOfObjectIdenticalTo:]", [a[1] indexOfObjectIdenticalTo: c_ary[1]] == 1) TEST(@"-[objectsFromIndex:toIndex", [[a[0] objectsFromIndex: 1 |
︙ | ︙ |
Modified tests/OFDictionaryTests.m from [cf65088ec9] to [8108ff1658].
︙ | ︙ | |||
48 49 50 51 52 53 54 55 56 57 58 59 60 61 | forKey: keys[1]]; TEST(@"-[objectForKey:]", [[dict objectForKey: keys[0]] isEqual: values[0]] && [[dict objectForKey: keys[1]] isEqual: values[1]] && [dict objectForKey: @"key3"] == nil) TEST(@"-[description]", [[dict description] isEqual: @"{key1 = value1; key2 = value2}"]) TEST(@"-[keyEnumerator]", (key_enum = [dict keyEnumerator])) TEST(@"-[objectEnumerator]", (obj_enum = [dict objectEnumerator])) TEST(@"OFEnumerator's -[nextObject]", | > > > > > > > > > | 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | forKey: keys[1]]; TEST(@"-[objectForKey:]", [[dict objectForKey: keys[0]] isEqual: values[0]] && [[dict objectForKey: keys[1]] isEqual: values[1]] && [dict objectForKey: @"key3"] == nil) TEST(@"-[containsObject:]", [dict containsObject: values[0]] == YES && [dict containsObject: @"nonexistant"] == NO) TEST(@"-[containsObjectIdenticalTo:]", [dict containsObjectIdenticalTo: values[0]] == YES && [dict containsObjectIdenticalTo: [OFString stringWithString: values[0]]] == NO) TEST(@"-[description]", [[dict description] isEqual: @"{key1 = value1; key2 = value2}"]) TEST(@"-[keyEnumerator]", (key_enum = [dict keyEnumerator])) TEST(@"-[objectEnumerator]", (obj_enum = [dict objectEnumerator])) TEST(@"OFEnumerator's -[nextObject]", |
︙ | ︙ |
Modified tests/OFListTests.m from [ffa5f8326d] to [6f4d1ee9d5].
︙ | ︙ | |||
73 74 75 76 77 78 79 80 81 82 83 84 85 86 | TEST(@"-[insertObject:afterListObject:]", [list insertObject: strings[2] afterListObject: [list firstListObject]->next] && [[list lastListObject]->object isEqual: strings[2]]) TEST(@"-[count]", [list count] == 3) TEST(@"-[copy]", (list = [[list copy] autorelease]) && [[list firstListObject]->object isEqual: strings[0]] && [[list firstListObject]->next->object isEqual: strings[1]] && [[list lastListObject]->object isEqual: strings[2]]) TEST(@"-[isEqual:]", [list isEqual: [[list copy] autorelease]]) | > > > > > > > > > | 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | TEST(@"-[insertObject:afterListObject:]", [list insertObject: strings[2] afterListObject: [list firstListObject]->next] && [[list lastListObject]->object isEqual: strings[2]]) TEST(@"-[count]", [list count] == 3) TEST(@"-[containsObject:]", [list containsObject: strings[1]] == YES && [list containsObject: @"nonexistant"] == NO) TEST(@"-[containsObjectIdenticalTo:]", [list containsObjectIdenticalTo: strings[1]] == YES && [list containsObjectIdenticalTo: [OFString stringWithString: strings[1]]] == NO) TEST(@"-[copy]", (list = [[list copy] autorelease]) && [[list firstListObject]->object isEqual: strings[0]] && [[list firstListObject]->next->object isEqual: strings[1]] && [[list lastListObject]->object isEqual: strings[2]]) TEST(@"-[isEqual:]", [list isEqual: [[list copy] autorelease]]) |
︙ | ︙ |