Index: src/OFCountedSet.m ================================================================== --- src/OFCountedSet.m +++ src/OFCountedSet.m @@ -124,15 +124,16 @@ - init { if (object_getClass(self) == [OFCountedSet class]) { @try { [self doesNotRecognizeSelector: _cmd]; - abort(); } @catch (id e) { [self release]; @throw e; } + + abort(); } return [super init]; } Index: src/OFCountedSet_hashtable.m ================================================================== --- src/OFCountedSet_hashtable.m +++ src/OFCountedSet_hashtable.m @@ -207,11 +207,11 @@ - (void)addObject: (id)object { size_t count = (size_t)(uintptr_t)[_mapTable valueForKey: object]; - if (SIZE_MAX - count < 1) + if (SIZE_MAX - count < 1 || UINTPTR_MAX - count < 1) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; [_mapTable setValue: (void*)(uintptr_t)(count + 1) forKey: object]; } Index: src/OFDictionary.h ================================================================== --- src/OFDictionary.h +++ src/OFDictionary.h @@ -222,21 +222,21 @@ /*! * @brief Creates a new dictionary, mapping each object using the specified * block. * * @param block A block which maps an object for each object - * @return A new, autorelease OFDictionary + * @return A new autoreleased OFDictionary */ - (OFDictionary*)mappedDictionaryUsingBlock: (of_dictionary_map_block_t)block; /*! * @brief Creates a new dictionary, only containing the objects for which the * block returns YES. * * @param block A block which determines if the object should be in the new * dictionary - * @return A new, autoreleased OFDictionary + * @return A new autoreleased OFDictionary */ - (OFDictionary*)filteredDictionaryUsingBlock: (of_dictionary_filter_block_t)block; #endif @end