145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
forKey: (id <OFCopying>)key
{
self = [super init];
@try {
uint32_t i;
struct of_dictionary_bucket *bucket;
data = [self allocMemoryForNItems: 2
withSize: sizeof(*bucket)];
size = 2;
for (i = 0; i < size; i++)
data[i] = NULL;
|
>
>
>
>
|
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
forKey: (id <OFCopying>)key
{
self = [super init];
@try {
uint32_t i;
struct of_dictionary_bucket *bucket;
if (key == nil || object == nil)
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
data = [self allocMemoryForNItems: 2
withSize: sizeof(*bucket)];
size = 2;
for (i = 0; i < size; i++)
data[i] = NULL;
|
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
|
return hash;
}
- (OFString*)description
{
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: @";\n"];
[pool2 releaseObjects];
}
[ret replaceOccurrencesOfString: @"\n"
|
|
>
|
>
|
|
|
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
737
738
|
return hash;
}
- (OFString*)description
{
OFMutableString *ret = [OFMutableString stringWithString: @"{\n"];
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init], *pool2;
OFEnumerator *keyEnumerator = [self keyEnumerator];
OFEnumerator *objectEnumerator = [self objectEnumerator];
id key, object;
size_t i;
i = 0;
pool2 = [[OFAutoreleasePool alloc] init];
while ((key = [keyEnumerator nextObject]) != nil &&
(object = [objectEnumerator nextObject]) != nil) {
[ret appendString: [key description]];
[ret appendString: @" = "];
[ret appendString: [object description]];
if (++i < count)
[ret appendString: @";\n"];
[pool2 releaseObjects];
}
[ret replaceOccurrencesOfString: @"\n"
|