>>>>> "M" == Minero Aoki <aamine / dp.u-netsurf.ne.jp> writes:

M> Maybe you are right. (As you know) rb_gc_mark() is not needed
M> because it is on the stack frame,

 I'm agree with you, but the problem is that it's not a _valid_ object and
 ruby call rb_gc_mark() for this object. This is rb_gc_mark() which is
 trying to interpret this structure as a Ruby object.

 For example, for Racc, rb_gc_mark() think that the object given is a Struct
 Object (i.e. it has found TYPE(obj) == T_STRUCT), and try to mark it like
 it do for a Struct object.

 Same problem with the example given where ruby-1.7.0 segfault
 (rb_gc_mark() is trying to mark an invalid object). 


Guy Decoux