• 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: Observing with GC
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Observing with GC


  • Subject: Re: Observing with GC
  • From: Chris Suter <email@hidden>
  • Date: Wed, 27 Feb 2008 09:15:47 +1100


On 27/02/2008, at 4:59 AM, Quincey Morris wrote:


On Feb 26, 2008, at 02:42, Chris Suter wrote:

The observation info uses a weak reference and it will have been zeroed before finalize is called so neither of the above are a problem. Even so, I'm not sure it's a good idea to call removeObserver: from the finalize method.

A weak reference to what? If you mean to the observed object, that brings us full circle. My original question was whether the references to observed objects are weak, and the answer I got was no.

The reference to the observer is a weak reference. The reference to the observed object isn't and that's where the leak comes from.


Knowing this, you might wonder if you have to call removeObserver at all in the GC case. I just ran some tests and it looks like you do otherwise you'll get a memory leak which is a shame because it would be easy to clean up automatically.

Do you know what's leaking? Are we talking about an observation info object that's sitting there with a zeroed reference to the observee? If so, I agree it's a shame, but I'm not sure how easy it would be for the observation code to detect without a lot of scanning.

Yes, it's the observation info that gets leaked. All observation info appears to get stored in a global dictionary: NSKeyValueObservationInfoPerObject and it's an entry in that that gets leaked. It should be easy to make it automatically clear up; use a NSMapTable rather than a dictionary.


- Chris

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

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

References: 
 >Observing with GC (From: Quincey Morris <email@hidden>)
 >Re: Observing with GC (From: Rob Keniger <email@hidden>)
 >Re: Observing with GC (From: glenn andreas <email@hidden>)
 >Re: Observing with GC (From: Rob Keniger <email@hidden>)
 >Re: Observing with GC (From: Bill Bumgarner <email@hidden>)
 >Re: Observing with GC (From: Quincey Morris <email@hidden>)
 >Re: Observing with GC (From: Chris Suter <email@hidden>)
 >Re: Observing with GC (From: Quincey Morris <email@hidden>)

  • Prev by Date: Re: NSString floatValue issue
  • Next by Date: Re: Force arrayController to remove immediately?
  • Previous by thread: Re: Observing with GC
  • Next by thread: Re: Observing with GC
  • Index(es):
    • Date
    • Thread