Overview
Context
Changes
Modified src/OFArray.m
from [77dedbc50e]
to [57851d31d6].
︙ | | |
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
|
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
|
-
+
-
-
+
+
+
+
+
|
}
- (OFString*)description
{
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
OFMutableString *ret;
ret = [[self componentsJoinedByString: @", "] mutableCopy];
ret = [[self componentsJoinedByString: @",\n"] mutableCopy];
@try {
[ret prependString: @"("];
[ret appendString: @")"];
[ret prependString: @"(\n"];
[ret replaceOccurrencesOfString: @"\n"
withString: @"\n\t"];
[ret appendString: @"\n)"];
} @catch (id e) {
[ret release];
@throw e;
}
[pool release];
[ret autorelease];
/*
|
︙ | | |
Modified src/OFDictionary.m
from [ec5929dd0a]
to [69df15df8e].
︙ | | |
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
|
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
|
-
+
-
+
+
+
-
+
|
OF_HASH_FINALIZE(hash);
return hash;
}
- (OFString*)description
{
OFMutableString *ret = [OFMutableString stringWithString: @"{"];
OFMutableString *ret = [OFMutableString stringWithString: @"{\n"];
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init], *pool2;
OFEnumerator *enumerator = [self keyEnumerator];
id key;
size_t i;
i = 0;
pool2 = [[OFAutoreleasePool alloc] init];
while ((key = [enumerator nextObject]) != nil) {
[ret appendString: [key description]];
[ret appendString: @" = "];
[ret appendString: [[self objectForKey: key] description]];
if (++i < count)
[ret appendString: @"; "];
[ret appendString: @";\n"];
[pool2 releaseObjects];
}
[ret replaceOccurrencesOfString: @"\n"
withString: @"\n\t"];
[ret appendString: @"}"];
[ret appendString: @";\n}"];
[pool release];
/*
* Class swizzle the string to be immutable. We declared the return type
* to be OFString*, so it can't be modified anyway. But not swizzling it
* would create a real copy each time -[copy] is called.
|
︙ | | |
Modified src/OFList.m
from [988739eca9]
to [ca60541ce0].
︙ | | |
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
|
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
|
-
+
-
+
+
+
-
+
|
OF_HASH_FINALIZE(hash);
return hash;
}
- (OFString*)description
{
OFMutableString *ret = [OFMutableString stringWithString: @"["];
OFMutableString *ret = [OFMutableString stringWithString: @"[\n"];
OFAutoreleasePool *pool;
of_list_object_t *iter;
pool = [[OFAutoreleasePool alloc] init];
for (iter = firstListObject; iter != NULL; iter = iter->next) {
[ret appendString: [iter->object description]];
if (iter->next != NULL)
[ret appendString: @", "];
[ret appendString: @",\n"];
[pool releaseObjects];
}
[ret replaceOccurrencesOfString: @"\n"
withString: @"\n\t"];
[ret appendString: @"]"];
[ret appendString: @"\n]"];
[pool release];
/*
* Class swizzle the string to be immutable. We declared the return type
* to be OFString*, so it can't be modified anyway. But not swizzling it
* would create a real copy each time -[copy] is called.
|
︙ | | |
Modified tests/OFArrayTests.m
from [0c0364260f]
to [5c7cef8543].
︙ | | |
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
-
+
|
TEST(@"+[arrayWithCArray:length:]",
(a[2] = [OFArray arrayWithCArray: c_ary
length: 3]) &&
[a[2] isEqual: a[1]])
TEST(@"-[description]",
[[a[0] description ]isEqual: @"(Foo, Bar, Baz)"])
[[a[0] description ]isEqual: @"(\n\tFoo,\n\tBar,\n\tBaz\n)"])
TEST(@"-[addObject:]", R([m[0] addObject: c_ary[0]]) &&
R([m[0] addObject: c_ary[2]]))
TEST(@"-[addObject:atIndex:]", R([m[0] addObject: c_ary[1]
atIndex: 1]))
|
︙ | | |
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
285
286
287
288
289
|
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
285
286
287
288
289
|
-
+
-
-
+
+
-
+
-
+
|
case 0:
return @"foo";
case 1:
return @"bar";
}
return nil;
}]) && [[m[0] description] isEqual: @"(foo, bar)"])
}]) && [[m[0] description] isEqual: @"(\n\tfoo,\n\tbar\n)"])
TEST(@"-[mappedArrayUsingBLock]",
[[[m[0] mappedArrayUsingBlock: ^ id (id obj, size_t idx) {
switch (idx) {
case 0:
switch (idx) {
case 0:
return @"foobar";
case 1:
return @"qux";
}
return nil;
}] description] isEqual: @"(foobar, qux)"])
}] description] isEqual: @"(\n\tfoobar,\n\tqux\n)"])
TEST(@"-[filteredArrayUsingBlock:]",
[[[m[0] filteredArrayUsingBlock: ^ BOOL (id obj, size_t idx) {
return ([obj isEqual: @"foo"] ? YES : NO);
}] description] isEqual: @"(foo)"])
}] description] isEqual: @"(\n\tfoo\n)"])
#endif
[pool drain];
}
@end
|
Modified tests/OFDictionaryTests.m
from [f16fd40dcf]
to [f1e6cab4f8].
︙ | | |
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
-
+
+
|
TEST(@"-[containsObjectIdenticalTo:]",
[dict containsObjectIdenticalTo: values[0]] == YES &&
[dict containsObjectIdenticalTo:
[OFString stringWithString: values[0]]] == NO)
TEST(@"-[description]",
[[dict description] isEqual: @"{key1 = value1; key2 = value2}"])
[[dict description] isEqual:
@"{\n\tkey1 = value1;\n\tkey2 = value2;\n}"])
TEST(@"-[keyEnumerator]", (key_enum = [dict keyEnumerator]))
TEST(@"-[objectEnumerator]", (obj_enum = [dict objectEnumerator]))
TEST(@"OFEnumerator's -[nextObject]",
[[key_enum nextObject] isEqual: keys[0]] &&
[[obj_enum nextObject] isEqual: values[0]] &&
|
︙ | | |
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
-
+
-
+
|
[[[dict mappedDictionaryUsingBlock: ^ id (id key, id obj) {
if ([key isEqual: keys[0]])
return @"val1";
if ([key isEqual: keys[1]])
return @"val2";
return nil;
}] description] isEqual: @"{key1 = val1; key2 = val2}"])
}] description] isEqual: @"{\n\tkey1 = val1;\n\tkey2 = val2;\n}"])
TEST(@"-[filteredDictionaryUsingBlock:]",
[[[dict filteredDictionaryUsingBlock: ^ BOOL (id key, id obj) {
return ([key isEqual: keys[0]] ? YES : NO);
}] description] isEqual: @"{key1 = value_1}"])
}] description] isEqual: @"{\n\tkey1 = value_1;\n}"])
#endif
TEST(@"-[count]", [dict count] == 2)
TEST(@"+[dictionaryWithKeysAndObjects:]",
(dict = [OFDictionary dictionaryWithKeysAndObjects: @"foo", @"bar",
@"baz", @"qux",
|
︙ | | |
Modified tests/OFListTests.m
from [c31252fa40]
to [2488afe1b6].
︙ | | |
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
-
+
|
[[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]])
TEST(@"-[description]",
[[list description] isEqual: @"[Foo, Bar, Baz]"])
[[list description] isEqual: @"[\n\tFoo,\n\tBar,\n\tBaz\n]"])
TEST(@"-[objectEnumerator]", (enumerator = [list objectEnumerator]))
loe = [list firstListObject];
i = 0;
ok = YES;
while ((obj = [enumerator nextObject]) != nil) {
|
︙ | | |