On Jul 12, 2008, at 13:42 , Michael Ash wrote:


http://www.opensource.apple.com/darwinsource/projects/apsl/CF-476.10/CFRuntime.h

typedef struct __CFRuntimeBase {
   uintptr_t _cfisa;
   uint8_t _cfinfo[4];
#if __LP64__
   uint32_t _rc;
#endif
} CFRuntimeBase;

I guess this isn't the right one, then.

If you look at the corresponding CFRuntime.c file, I think you'll find that there is logic there for treating part of the _cfinfo as a retain count (look for _CFRetain() )

To Gary, about 16-bit refcounts, I'd imagine that there's some logic
in there where if you hit 0xFFFF, it considers that to be a flag to
use an external refcount instead, at the cost of some speed.

Yep. Inline reference counts are an optimization, as such they need to cater to the common case, not to the outliers (which still have to be handled correctly, but don't need to be as fast).

Cheers,

Marcel

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to