Index: src/OFObject.m ================================================================== --- src/OFObject.m +++ src/OFObject.m @@ -12,10 +12,11 @@ #import "config.h" #include #include #include +#include #import "OFObject.h" #import "OFAutoreleasePool.h" #import "OFExceptions.h" #import "OFMacros.h" @@ -324,14 +325,12 @@ if (OF_UNLIKELY(*iter == ptr)) { memchunks_size = PRE_IVAR->memchunks_size - 1; last = PRE_IVAR->memchunks[memchunks_size]; - if (OF_UNLIKELY(PRE_IVAR->memchunks_size == 0 || - memchunks_size > SIZE_MAX / sizeof(void*))) - @throw [OFOutOfRangeException - newWithClass: isa]; + assert(PRE_IVAR->memchunks_size != 0 && + memchunks_size <= SIZE_MAX / sizeof(void*)); if (OF_UNLIKELY(memchunks_size == 0)) { free(ptr); free(PRE_IVAR->memchunks); @@ -342,13 +341,11 @@ } if (OF_UNLIKELY((memchunks = realloc( PRE_IVAR->memchunks, memchunks_size * sizeof(void*))) == NULL)) - @throw [OFNoMemException - newWithClass: isa - andSize: memchunks_size]; + return self; free(ptr); PRE_IVAR->memchunks = memchunks; PRE_IVAR->memchunks[i] = last; PRE_IVAR->memchunks_size = memchunks_size;