@@ -19,10 +19,11 @@ #import #endif #import "OFObject.h" #import "OFExceptions.h" +#import "OFMacros.h" @implementation OFObject - init { if ((self = [super init]) != nil) { @@ -108,12 +109,12 @@ } iter = __memchunks + __memchunks_size; while (iter-- > __memchunks) { - if (*iter == ptr) { - if ((ptr = realloc(ptr, size)) == NULL) + if (OF_UNLIKELY(*iter == ptr)) { + if (OF_UNLIKELY((ptr = realloc(ptr, size)) == NULL)) [[OFNoMemException newWithObject: self andSize: size] raise]; *iter = ptr; return ptr; @@ -157,31 +158,31 @@ i = __memchunks_size; while (iter-- > __memchunks) { i--; - if (*iter == ptr) { + if (OF_UNLIKELY(*iter == ptr)) { memchunks_size = __memchunks_size - 1; last = __memchunks[memchunks_size]; - if (__memchunks_size == 0 || - memchunks_size > SIZE_MAX / sizeof(void*)) + if (OF_UNLIKELY(__memchunks_size == 0 || + memchunks_size > SIZE_MAX / sizeof(void*))) [[OFOutOfRangeException newWithObject: self] raise]; - if (memchunks_size == 0) { + if (OF_UNLIKELY(memchunks_size == 0)) { free(ptr); free(__memchunks); __memchunks = NULL; __memchunks_size = 0; return self; } - if ((memchunks = realloc(__memchunks, - memchunks_size * sizeof(void*))) == NULL) + if (OF_UNLIKELY((memchunks = realloc(__memchunks, + memchunks_size * sizeof(void*))) == NULL)) [[OFNoMemException newWithObject: self andSize: memchunks_size] raise]; @@ -194,8 +195,8 @@ } } [[OFMemNotPartOfObjException newWithObject: self andPointer: ptr] raise]; - return self /* never reached, but makes gcc happy */; + return self; /* never reached, but makes gcc happy */ } @end