On Feb 20, 2012, at 10:16 AM, Matt Neuburg <m...@tidbits.com> wrote: > On Fri, 17 Feb 2012 16:06:01 -0800, Greg Parker <gpar...@apple.com> said: >> No. objc_msgSend() also reads from the class's method cache and method list. >> It's possible for the receiver object to be valid, but still crash because >> of a memory smasher that hit the method cache or method list > > It's also possible for the receiver object to be valid but the wrong object. > I remember in my early Cocoa programming days I mismanaged the memory for an > NSString object and was mystified when *another NSString object took its > place*. I believe NSZombie would have tracked that down by occupying the slot > pointed to by the variable and not letting some other string slip into it. In > other words, believe in zombies, not in your intuitions about how everything > looks okay. :) m.
Having a prematurely-deallocated object replaced by a new object of the same type can lead to all sorts of exciting bugs, but a crash in objc_msgSend() itself is not one of them. (And yes, NSZombie is good at catching such cases. The dead object's address will not be re-used, at least not any time soon.) -- Greg Parker gpar...@apple.com Runtime Wrangler _______________________________________________ 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