Re: Closing window on Yosemite crashes (isFlipped)
Re: Closing window on Yosemite crashes (isFlipped)
- Subject: Re: Closing window on Yosemite crashes (isFlipped)
- From: Fritz Anderson <email@hidden>
- Date: Thu, 30 Oct 2014 11:26:19 -0500
I haven’t encountered this myself. This is stream-of-consciousness, adding the presence of convertRect:toView: in the trace as the immediate caller…
…
The classic cause of a message arriving at the wrong object is that the expected object had been deallocated and its address recycled for the object that eventually got the bad call. The bad call comes of the calling object’s keeping an orphan pointer to the original.
I’d think ARC would make that very rare, but maybe not impossible, especially if the orphan pointer were unsafe_unretained. It’s too bad you don’t have a reproducible case; if there were one, I’d use the Allocations and Leaks instruments, with Allocations set to record the complete malloc/retain/release/free life cycles.
…
It’s worse in that if it is an orphan pointer, it smells as if it was kept in the view hierarchy of a framework-managed object.
…
I wonder if _NSThemeCloseWidget is an NSCell; a cell wouldn’t implement any of those messages, assuming the subclass doesn’t add them. From the selectors you mention (plus the caller being inside convertRect:**toView:**), the caller seems to expect an NSView.
— F
> On 30 Oct 2014, at 9:59 AM, Allan Odgaard <email@hidden> wrote:
>
> Since Yosemite I have seen a lot of crash reports submitted where the crash is triggered by closing a window and it mostly ends with sending `isFlipped`, `_isLayerBacked`, or `transformRect:` to a wrong object.
> Application Specific Information:
> objc_msgSend() selector name: isFlipped
> Performing @selector(_close:) from sender _NSThemeCloseWidget 0x61000019c560
>
> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
> 0 libobjc.A.dylib 0x00007fff897530dd objc_msgSend + 29
> 1 com.apple.AppKit 0x00007fff8afb7d79 -[NSView convertRect:toView:] + 212
> 2 com.apple.AppKit 0x00007fff8b094b0e -[NSView(NSInternal) _updateLayerTreeRenderer] + 935
> 3 com.apple.AppKit 0x00007fff8b1c1548 -[NSView(NSInternal) _pauseLayerTreeRenderer] + 144
> 4 com.apple.CoreFoundation 0x00007fff830bacbc __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
> 5 com.apple.CoreFoundation 0x00007fff82fac1b4 _CFXNotificationPost + 3140
> 6 com.apple.Foundation 0x00007fff903acea1 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
> 7 com.apple.AppKit 0x00007fff8b0c70f4 -[NSWindow _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 4151
> 8 com.apple.AppKit 0x00007fff8b0c5e17 -[NSWindow _doOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 829
> 9 com.apple.AppKit 0x00007fff8b0c5a6b -[NSWindow orderWindow:relativeTo:] + 159
> 10 com.apple.AppKit 0x00007fff8b1bf587 __18-[NSWindow _close]_block_invoke + 444
> 11 com.apple.AppKit 0x00007fff8b1bf395 -[NSWindow _close] + 363
> 12 com.apple.AppKit 0x00007fff8b1bf145 -[NSWindow __close] + 312
> 13 libsystem_trace.dylib 0x00007fff8fc41cd7 _os_activity_initiate + 75
> 14 com.apple.AppKit 0x00007fff8b1765e7 -[NSApplication sendAction:to:from:] + 410
> 15 com.apple.AppKit 0x00007fff8b176410 -[NSControl sendAction:to:] + 86
> 16 com.apple.AppKit 0x00007fff8b34adaf __26-[NSCell _sendActionFrom:]_block_invoke + 131
> 17 libsystem_trace.dylib 0x00007fff8fc41cd7 _os_activity_initiate + 75
> 18 com.apple.AppKit 0x00007fff8b1bef2c -[NSCell _sendActionFrom:] + 144
> 19 com.apple.AppKit 0x00007fff8b331ab2 -[NSButtonCell _sendActionFrom:] + 39
> 20 libsystem_trace.dylib 0x00007fff8fc41cd7
...
_______________________________________________
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