CFRelease question

Leonid Romanov leonid.romanov at oracle.com
Wed Sep 28 02:44:20 PDT 2011


I see. Thanks!

On 27.09.2011, at 22:00, Mike Swingler wrote:

> On Sep 27, 2011, at 10:40 AM, Leonid Romanov wrote:
> 
>> Hi,
>> I've got a question: if we CFRelease a NSWindow with the retain count 1, thus making it 0, will it result in dealloc chain calls? I'm asking this question because I'm investigating http://java.net/jira/browse/MACOSX_PORT-429 and my current theory is that something is wrong with the reference counting (I'm not sure about it, though). 
> 
> Absolutely, CFRelease() will call -dealloc when the retain count reaches 0. CFRelease() of a window should occur on the main AppKit Thread 0, since the destruction of a window calls into other parts of AppKit.
> 
> A window may temporarily be retained/released/autoreleased by other things, like a block-copy when doing -[JNFRunLoop performOnMainThreadWaiting:withBlock:], or other actions which may introspect the list of open windows.
> 
> Regards,
> Mike Swingler
> Java Engineering
> Apple Inc.
> 



More information about the macosx-port-dev mailing list