Overview
Comment: | Make retain count int32_t. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
b725e983ae16ebbc8332187b8b2d89fc |
User & Date: | js on 2010-01-29 15:21:06 |
Other Links: | manifest | tags |
Context
2010-01-29
| ||
15:22 | Add more atomic ops. check-in: 78537d6ff3 user: js tags: trunk | |
15:21 | Make retain count int32_t. check-in: b725e983ae user: js tags: trunk | |
2010-01-25
| ||
22:40 | Use spinlocks in objc_properties.m. check-in: 2be191ec57 user: js tags: trunk | |
Changes
Modified src/OFConstString.m from [69a22d8f6f] to [d39251187d].
︙ | ︙ | |||
134 135 136 137 138 139 140 | } - autorelease { return self; } | | | | 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | } - autorelease { return self; } - (int32_t)retainCount { return INT32_MAX; } - (void)release { } - (void)dealloc |
︙ | ︙ |
Modified src/OFFile.m from [5dcf811aa9] to [f0b3a13578].
︙ | ︙ | |||
255 256 257 258 259 260 261 | return self; } - (void)release { } | | | | 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 | return self; } - (void)release { } - (int32_t)retainCount { return INT32_MAX; } - (void)dealloc { @throw [OFNotImplementedException newWithClass: isa selector: _cmd]; [super dealloc]; /* Get rid of stupid warning */ |
︙ | ︙ |
Modified src/OFObject.h from [b10aa6cbcf] to [58427ce6f5].
︙ | ︙ | |||
262 263 264 265 266 267 268 | * object deallocated if it reaches 0. */ - retain; /** * \return The retain count */ | | | 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 | * object deallocated if it reaches 0. */ - retain; /** * \return The retain count */ - (int32_t)retainCount; /** * Decreases the retain count. * * Each time an object is released, the retain count gets decreased and the * object deallocated if it reaches 0. */ |
︙ | ︙ |
Modified src/OFObject.m from [490f2fcff3] to [14884d461d].
︙ | ︙ | |||
29 30 31 32 33 34 35 | #ifdef OF_GNU_RUNTIME # import <objc/sarray.h> #endif #import "atomic.h" struct pre_ivar { | | | | | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #ifdef OF_GNU_RUNTIME # import <objc/sarray.h> #endif #import "atomic.h" struct pre_ivar { void **memchunks; size_t memchunks_size; int32_t retain_count; /* int32_t because atomic ops use int32_t */ }; /* Hopefully no arch needs more than 16 bytes padding */ #define PRE_IVAR_ALIGN ((sizeof(struct pre_ivar) + 15) & ~15) #define PRE_IVAR ((struct pre_ivar*)((char*)self - PRE_IVAR_ALIGN)) static struct { |
︙ | ︙ | |||
476 477 478 479 480 481 482 | - retain { of_atomic_inc32(&PRE_IVAR->retain_count); return self; } | | | 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 | - retain { of_atomic_inc32(&PRE_IVAR->retain_count); return self; } - (int32_t)retainCount { return PRE_IVAR->retain_count; } - (void)release { if (!of_atomic_dec32(&PRE_IVAR->retain_count)) |
︙ | ︙ | |||
580 581 582 583 584 585 586 | } + autorelease { return self; } | | | | 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 | } + autorelease { return self; } + (int32_t)retainCount { return INT32_MAX; } + (void)release { } + (void)dealloc |
︙ | ︙ |