I've hit issues with splitView delegate getting called after the delegate is 
dealloced, and my setDelegate happens in the nib - normally what gets set in 
the nib gets unset correctly later. I had to put in a 
NSWindowWillCloseNotification observer and clear the splitView delegate there.

It's an incredibly complex window with lots of connections (but no leaks or 
retain cycles), and it didn't happen in my stripped-down sample app, so I never 
filed it.

I really wish the converse of awakeFromNib was public so we could do our own 
pre-dealloc nib teardown when we need to.

On Aug 20, 2012, at 2:14 PM, Kevin Perry wrote:

> Looks like the crash is happening while attempting to invoke 
> -respondsToSelector:.
> 
> Odds are that this is a message being sent to [self delegate], which looks 
> like a deallocated object.
> 
> Is it possible that the split view is outliving its delegate? Typically, when 
> a delegate gets deallocated (or when you release it for the last time), you 
> are responsible for calling setDelegate:nil on anything that you had 
> previously set it as a delegate for.
> 
> -KP
> 
> On Aug 20, 2012, at 12:57 PM, Jerry Krinock <je...@ieee.org> wrote:
> 
>> SUMMARY
>> 
>> While testing an app in 10.8 today, it crashed three times out of six upon 
>> restoring from the Versions Browser.  But the problem has now gone away.  I 
>> don't have enough information to file a bug report or try any more 
>> workarounds, so I'm throwing my observations out there in case someone else 
>> has seen or will see this problem.  Maybe we can put our observations 
>> together and get further.
>> 
>> DETAILS
>> 
>> Crash report is at end of this message.  You see all of the stack is in 
>> Apple's code.
>> 
>> Not knowing what else to do, I subclassed NSSplitView, to log the parameters 
>> and invoke super.  After doing this, I couldn't make it crash any more :|  
>> The logged parameters were always reasonable.  Assuming that this is going 
>> to bite back later, I left it subclassed with the following rather 
>> do-nothing implementation…
>> 
>> - (void)resizeSubviewsWithOldSize:(NSSize)oldBoundsSize {
>>   NSRect screenFrame = [[[self window] screen] frame] ;
>> 
>>   if (oldBoundsSize.width > screenFrame.size.width) {
>>       NSLog(@"Warning 502-9481 clipped split view width to %f",
>>             screenFrame.size.width) ;
>>   }
>>   if (oldBoundsSize.height > screenFrame.size.height) {
>>       NSLog(@"Warning 502-9482 clipped split view height to %f",
>>             screenFrame.size.height) ;
>>   }
>> 
>>   [super resizeSubviewsWithOldSize:oldBoundsSize] ;
>> }
>> 
>> Maybe it will crash again someday and tell me something.
>> 
>> Other factors which may be involved…
>> 
>> • Just last week, I cleaned up and started compiling this app as 64-bit, 
>> built in Xcode 4 with NSSplitView and Mac OS X 10.8 SDK.  The version now in 
>> the field is 32-bit only, built in Xcode 3 with RBSplitView and Mac OS X 
>> 10.6 SDK.
>> • In Mac OS X 10.8, in the Versions browser, when clicking on the view of 
>> the old version, the view magnifies and gets bigger.  I don't remember this 
>> happening in 10.7.  Possibly this resizing is triggering the crash.
>> • Others have seen this method crash, although in different ways…
>>  http://dev.sequelpro.com/log/viewreports/1392/37095
>>  http://dev.sequelpro.com/log/view/1392
>> 
>> Thanks for reading,
>> 
>> Jerry Krinock
>> 
>> Here is some of the crash report…
>> 
>> Code Type:       X86-64 (Native)
>> Parent Process:  launchd [125]
>> User ID:         501
>> 
>> Date/Time:       2012-08-20 05:36:00.652 -0700
>> OS Version:      Mac OS X 10.8 (12A256)
>> Report Version:  10
>> 
>> Interval Since Last Report:          12640 sec
>> Crashes Since Last Report:           1
>> Per-App Crashes Since Last Report:   1
>> 
>> Crashed Thread:  0  Dispatch queue: com.apple.main-thread
>> 
>> Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
>> Exception Codes: EXC_I386_GPFLT
>> 
>> Application Specific Information:
>> objc_msgSend() selector name: respondsToSelector:
>> 
>> 
>> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
>> 0   libobjc.A.dylib                  0x00007fff8c0b0590 objc_msgSend_vtable5 
>> + 16
>> 1   com.apple.AppKit                 0x00007fff90a316d5 -[NSSplitView 
>> resizeSubviewsWithOldSize:] + 370
>> 2   com.apple.AppKit                 0x00007fff908103c8 -[NSView 
>> setFrameSize:] + 1101
>> 3   com.apple.AppKit                 0x00007fff9080fc0e -[NSView setFrame:] 
>> + 299
>> 4   com.apple.AppKit                 0x00007fff90864e92 -[NSView 
>> resizeWithOldSuperviewSize:] + 1502
>> 5   com.apple.AppKit                 0x00007fff90863fd7 -[NSView 
>> resizeSubviewsWithOldSize:] + 318
>> 6   com.apple.AppKit                 0x00007fff908103c8 -[NSView 
>> setFrameSize:] + 1101
>> 7   com.apple.AppKit                 0x00007fff9080fc0e -[NSView setFrame:] 
>> + 299
>> 8   com.apple.AppKit                 0x00007fff90a10f6d -[NSTabView 
>> _resizeSelectedTabViewItem] + 119
>> 9   com.apple.AppKit                 0x00007fff90a10ee4 -[NSTabView 
>> setFrameSize:] + 218
>> 10  com.apple.AppKit                 0x00007fff9080fc0e -[NSView setFrame:] 
>> + 299
>> 11  com.apple.AppKit                 0x00007fff90864e92 -[NSView 
>> resizeWithOldSuperviewSize:] + 1502
>> 12  com.apple.AppKit                 0x00007fff90863fd7 -[NSView 
>> resizeSubviewsWithOldSize:] + 318
>> 13  com.apple.AppKit                 0x00007fff908103c8 -[NSView 
>> setFrameSize:] + 1101
>> 14  com.apple.AppKit                 0x00007fff9080fc0e -[NSView setFrame:] 
>> + 299
>> 15  com.apple.AppKit                 0x00007fff90864e92 -[NSView 
>> resizeWithOldSuperviewSize:] + 1502
>> 16  com.apple.AppKit                 0x00007fff90863fd7 -[NSView 
>> resizeSubviewsWithOldSize:] + 318
>> 17  com.apple.AppKit                 0x00007fff908103c8 -[NSView 
>> setFrameSize:] + 1101
>> 18  com.apple.AppKit                 0x00007fff9086e254 -[NSThemeFrame 
>> setFrameSize:] + 513
>> 19  com.apple.AppKit                 0x00007fff9086d34f -[NSWindow 
>> _setFrame:updateBorderViewSize:] + 929
>> 20  com.apple.AppKit                 0x00007fff9086cac4 -[NSWindow 
>> _oldPlaceWindow:] + 1142
>> 21  com.apple.AppKit                 0x00007fff9086bf79 -[NSWindow 
>> _setFrameCommon:display:stashSize:] + 1837
>> 22  com.apple.AppKit                 0x00007fff90733933 __28-[NSMoveHelper 
>> _doAnimation]_block_invoke_0 + 1003
>> 23  com.apple.CoreFoundation         0x00007fff8bd464b4 
>> __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
>> 24  com.apple.CoreFoundation         0x00007fff8bd45fcd __CFRunLoopDoTimer + 
>> 557
>> 25  com.apple.CoreFoundation         0x00007fff8bd2b7b9 __CFRunLoopRun + 1513
>> 26  com.apple.CoreFoundation         0x00007fff8bd2add2 CFRunLoopRunSpecific 
>> + 290
>> 27  com.apple.AppKit                 0x00007fff9073332c -[NSMoveHelper 
>> _doAnimation] + 1373
>> 28  com.apple.AppKit                 0x00007fff90732b66 -[NSMoveHelper 
>> _resizeWindow:toFrame:display:] + 493
>> 29  com.apple.AppKit                 0x00007fff90a1f773 -[NSWindow 
>> setFrame:display:animate:] + 1337
>> 30  com.apple.AppKit                 0x00007fff90f8314c __block_global_9 + 
>> 141
>> 31  libdispatch.dylib                0x00007fff95c64f3d 
>> _dispatch_call_block_and_release + 15
>> 32  libdispatch.dylib                0x00007fff95c610fa 
>> _dispatch_client_callout + 8
>> 33  libdispatch.dylib                0x00007fff95c659ab 
>> _dispatch_after_timer_callback + 22
>> 34  libdispatch.dylib                0x00007fff95c610fa 
>> _dispatch_client_callout + 8
>> 35  libdispatch.dylib                0x00007fff95c632d7 
>> _dispatch_source_invoke + 691
>> 36  libdispatch.dylib                0x00007fff95c62349 
>> _dispatch_queue_invoke + 72
>> 37  libdispatch.dylib                0x00007fff95c660cd 
>> _dispatch_main_queue_callback_4CF + 220
>> 38  com.apple.CoreFoundation         0x00007fff8bd2b81e __CFRunLoopRun + 1614
>> 39  com.apple.CoreFoundation         0x00007fff8bd2add2 CFRunLoopRunSpecific 
>> + 290
>> 40  com.apple.HIToolbox              0x00007fff8d2a3774 
>> RunCurrentEventLoopInMode + 209
>> 41  com.apple.HIToolbox              0x00007fff8d2a3512 
>> ReceiveNextEventCommon + 356
>> 42  com.apple.HIToolbox              0x00007fff8d2a33a3 
>> BlockUntilNextEventMatchingListInMode + 62
>> 43  com.apple.AppKit                 0x00007fff9083d1d3 _DPSNextEvent + 685
>> 44  com.apple.AppKit                 0x00007fff9083ca92 -[NSApplication 
>> nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
>> 45  com.apple.AppKit                 0x00007fff90833e33 -[NSApplication run] 
>> + 517
>> 46  com.apple.AppKit                 0x00007fff907d8886 NSApplicationMain + 
>> 869
>> 
>> 
>> _______________________________________________
>> 
>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>> 
>> 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:
>> https://lists.apple.com/mailman/options/cocoa-dev/kperry%40apple.com
>> 
>> This email sent to kpe...@apple.com
> 
> 
> _______________________________________________
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> 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:
> https://lists.apple.com/mailman/options/cocoa-dev/lrucker%40vmware.com
> 
> This email sent to lruc...@vmware.com


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to