Re: Understanding objc_assign_strongCast
Re: Understanding objc_assign_strongCast
- Subject: Re: Understanding objc_assign_strongCast
- From: Christopher Nebel <email@hidden>
- Date: Thu, 7 Feb 2008 09:50:38 -0800
On Feb 6, 2008, at 5:23 PM, Ben Trumbull wrote:
objc_assign_strongCast() will issue a write barrier, informing GC
that the destination value has changed. But if the only references
to this pointer are in unscanned (not GC) memory, than the GC system
will think it's dead as no references to that pointer exist in
scanned (GC live) memory.
The C++ new operator allocates from malloc(), just as before.
malloc() memory is not GC scanned. It's probably easiest to instead
use CFRetain and balance it with CFRelease in delete/etc.
You could also define a custom "new" operator for the class in
question that allocates its memory using NSAllocateCollectable(...,
NSScannedOption), but that might be more trouble than it's worth.
--Chris N.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden