@@ -131,20 +131,20 @@ @throw (OFAllocFailedException*)&alloc_failed_exception; } memcpy(copy, block, block->descriptor->size); copy->isa = (Class)&_NSConcreteMallocBlock; - copy->reserved++; + copy->flags++; if (block->flags & OF_BLOCK_HAS_COPY_DISPOSE) block->descriptor->copy_helper(copy, block); return copy; } if (block->isa == (Class)&_NSConcreteMallocBlock) - of_atomic_inc_int(&block->reserved); + of_atomic_inc_int(&block->flags); return block; } void @@ -153,11 +153,11 @@ of_block_literal_t *block = (of_block_literal_t*)block_; if (block->isa != (Class)&_NSConcreteMallocBlock) return; - if (of_atomic_dec_int(&block->reserved) == 0) { + if ((of_atomic_dec_int(&block->flags) & OF_BLOCK_REFCOUNT_MASK) == 0) { if (block->flags & OF_BLOCK_HAS_COPY_DISPOSE) block->descriptor->dispose_helper(block); free(block); } @@ -306,11 +306,12 @@ } - (size_t)retainCount { if (isa == (Class)&_NSConcreteMallocBlock) - return ((of_block_literal_t*)self)->reserved; + return ((of_block_literal_t*)self)->flags & + OF_BLOCK_REFCOUNT_MASK; return SIZE_MAX; } - (void)release