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

Reply via email to