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]

Reply via email to