Index: src/OFDictionary.m ================================================================== --- src/OFDictionary.m +++ src/OFDictionary.m @@ -116,33 +116,35 @@ size = dict->size; count = dict->count; for (i = 0; i < size; i++) { - if (dict->data[i].key != nil) { - OFObject *key; - - @try { - key = [dict->data[i].key copy]; - } @catch (OFException *e) { - [self dealloc]; - @throw e; - } - - @try { - [dict->data[i].object retain]; - } @catch (OFException *e) { - [key release]; - [self dealloc]; - @throw e; - } - - data[i].key = key; - data[i].object = dict->data[i].object; - data[i].hash = dict->data[i].hash; - } else + OFObject *key; + + if (dict->data[i].key == nil) { data[i].key = nil; + continue; + } + + @try { + key = [dict->data[i].key copy]; + } @catch (OFException *e) { + [self dealloc]; + @throw e; + } + + @try { + [dict->data[i].object retain]; + } @catch (OFException *e) { + [key release]; + [self dealloc]; + @throw e; + } + + data[i].key = key; + data[i].object = dict->data[i].object; + data[i].hash = dict->data[i].hash; } return self; }