Stupid question of the day :-)

 How many people use rb_iterate() with an invalid object given for the last
 argument ?

 I know that I do this in some my extensions :-)

 With the last modification (NODE_IFUNC), if the GC is called it will try
 to mark this object and you can have a big surprise.

 Here an example with racc (I found it when I was trying to install the new
 version of RDTool, with racc-1.3.3)

 with 1.6.2 without NODE_IFUNC

 
pigeon% ./ruby /usr/local/bin/racc rd/rdblockparser.ry    
pigeon% 

 with 1.6.2 and the modification for NODE_IFUNC

pigeon% ./ruby /usr/local/bin/racc rd/rdblockparser.ry
/usr/local/lib/ruby/site_ruby/1.6/racc/parser.rb:97: [BUG] rb_gc_mark(): unknown
 data type 0x31(0x8135930) non object
ruby 1.6.2 (2000-12-25) [i686-linux]
Aborted
pigeon% 

 If I'm right, this is ruby trying to mark the struct cparse_params given
 to rb_iterate() (via the call REDUCE(v, act))



Guy Decoux