• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: firstResponder KVO snow leopard crash; bug?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: firstResponder KVO snow leopard crash; bug?


  • Subject: Re: firstResponder KVO snow leopard crash; bug?
  • From: Aaron Clarke <email@hidden>
  • Date: Wed, 18 Nov 2009 20:28:36 -0500


On Nov 18, 2009, at 12:00 , Corbin Dunn wrote:


On Nov 17, 2009, at 1:04 PM, Aaron Clarke wrote:

We have an application that runs fine on leopard (10.5) but occasionally
crashes on snow leopard (10.6) when closing an NSWindow. Here is the
backtrace for the crash:


Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
0x976e691b in objc_msgSend ()
(gdb) bt
#0  0x976e691b in objc_msgSend ()
#1  0x197142d0 in ?? ()
#2  0x9031e88e in NSKeyValuePushPendingNotificationPerThread ()
#3  0x9031e224 in NSKeyValueWillChange ()
#4  0x9030350b in -[NSObject(NSKeyValueObserverNotification)
willChangeValueForKey:] ()
#5  0x90327cfe in _NSSetObjectValueAndNotify ()
#6  0x92745fb8 in -[NSWindow makeFirstResponder:] ()
...

Even if it doesn't crash, closing the NSWindow always results in the
following error message.

An instance 0x11b75230 of class MyWindow was deallocated while key value
observers were still registered with it. Observation info was leaked, and
may even become mistakenly attached to some other object. Set a breakpoint
on NSKVODeallocateBreak to stop here in the debugger. Here's the current
observation info:
<NSKeyValueObservationInfo 0x19408190> (
<NSKeyValueObservance 0x194233d0: Observer: 0x463afa0, Key path:
firstResponder, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0,
Property: 0x4453e60>
<NSKeyValueObservance 0x1ab6ad40: Observer: 0x19427a80, Key path:
firstResponder, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0,
Property: 0x4453e60>
)


I looked at what the observer object's class is, and it's a subclass of
NSCollectionView. We do not explicitly setup a KVO relationship for
firstResponder. I also noticed that the "Application Kit Release Notes for
Snow Leopard" mention that firstResponder is KVO-compliant, which makes me
believe this is something new in Snow Leopard. All this information makes
me believe this is potentially a bug in Application Kit for 10.6. Maybe we
setup an NSCollectionView incorrectly or I'm misinterpreting this
information?

Oh -- another thing. Does your subclass of NSCollectionView override:

(void)viewWillMoveToWindow:(NSWindow *)window {

but not call super? If not... call super! Your classes should always call super if it is defined in a superclass, unless you have a good reason to hide the super's behavior.

corbin





This was the problem, thank you. This is a difficult bug to find in code someone else wrote. This makes me almost wish there was a gcc flag for it (-Woverride-no-super).


-Aaron

_______________________________________________

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


  • Follow-Ups:
    • Re: firstResponder KVO snow leopard crash; bug?
      • From: Corbin Dunn <email@hidden>
    • Re: firstResponder KVO snow leopard crash; bug?
      • From: "Sean McBride" <email@hidden>
References: 
 >firstResponder KVO snow leopard crash; bug? (From: Aaron Clarke <email@hidden>)
 >Re: firstResponder KVO snow leopard crash; bug? (From: Corbin Dunn <email@hidden>)

  • Prev by Date: What exactly does NSController do?
  • Next by Date: Re: setToolTip: not working
  • Previous by thread: Re: firstResponder KVO snow leopard crash; bug?
  • Next by thread: Re: firstResponder KVO snow leopard crash; bug?
  • Index(es):
    • Date
    • Thread