From: Andy Lester <[EMAIL PROTECTED]>
   Date: Tue, 11 Mar 2008 20:01:07 -0500

   On Mar 11, 2008, at 6:12 PM, Geoffrey Broadwell wrote:

   > I'm confused here.  My understanding of the difference between
   > PARROT_ASSERT and the PARROT_ASSERT_POINTER suggestion is that the
   > former checks for truth, and the other would check for lack of obvious
   > insanity.

   A pointer of 0 is always, 100% of the time invalid.  Always.

   A pointer of 0xdeadbeef has a non-zero chance of being valid and thus  
   throwing a false positive.  We don't get to control what malloc throws  
   our way.

   Although, I guess, we DO get to if we force all our allocations to go  
   through mem_sys_allocate(), which we are indeed doing.  Usually.  I  
   guess we COULD just make mem_sys_allocate() re-malloc if it gets the  
   magic 0xdeadbeef.  Hmmm.

0xdeadbeef is odd, so it doesn't even have word alignment on
byte-addressable machines.  So you don't even have to check on most
architectures.  True?

                                        -- Bob Rogers
                                           http://rgrjr.dyndns.org/

Reply via email to