On Tue, Mar 9, 2010 at 11:08 AM, Josh de Lioncourt <[email protected]> wrote: > > OK, here is the part that I'm still sticking on. First, you wrote: > > On Mar 8, 2010, at 6:25 PM, Quincey Morris wrote: > >> On Mar 8, 2010, at 16:01, Josh de Lioncourt wrote: >> >> Therefore, if the framework isn't coded for GC compatibility, it's likely >> going to be unusable at runtime in a GC app, no matter how you set the build >> settings. >> >> Was the framework written with code for both GC and non-GC environments? >> > From Apple's docs, it seems that setting the build setting to "Supported" > rather than "Required", should allow the framework to either manage its own > objects, or have them collected.
If the build setting is set to Supported, then the framework *must* support both methods of operation. (i.e. it's not up to the framework, it's up to the application that loads the framework). > What do you mean by "coded" for GC? If there are specific things that need to > be changed to use even the "supported" setting, I cannot find specific > information on what these would be, or what to look for to try to eliminate > the problems in the source. I've already recompiled the framework with GC > supported, but there's obviously more than must be done to truly make this > work, and the docs have not been helpful. > > The only thing I can think of, as of now, is perhaps, once the framework is > compiled with GC supported, the GC, at run time, is not finding any "strong" > references to the objects created by the framework, and destroying them as > fast as they are created. If that is the case, I have no idea how to rectify > that in the framework's source. You need to go through your framework's code and find any places where the Obj-C reference count is the only thing keeping an object alive (i.e. any place where you don't have a strong pointer to that object), as there *is no Obj-C reference count* when running in a garbage collected process, and such an object will be collected. For instance, this frequently happens in places where you register for a callback, and pass some object through a (void*)context parameter. You may want to read through the Garbage Collection Programming Guide: <http://developer.apple.com/Mac/library/documentation/Cocoa/Conceptual/GarbageCollection/Introduction.html> -- Clark S. Cox III [email protected] _______________________________________________ Cocoa-dev mailing list ([email protected]) 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]
