From: Tomoyuki Chikanaga Date: 2007-02-24T10:17:20+09:00 Subject: [ruby-dev:30405] ext/racc/cparse.c - goto_pointer を複数回 mark 日本コントロールシステム(株)の近永と申します。 よろしくお願いします。 [ruby-dev:30404] で報告した SEGV の調査の途中で、 ext/racc/cparse/cparse.c を読んでいる時に、 cparse_params_mark() で goto_pointer という構造体メンバに対して 5回連続で rb_gc_mark() を呼んでいるのをみて不思議に思いました。 mark関数は複数呼んでも問題ないように見えたので、別に支障は ないのだろうと思いますが、多分1回でよいのではないでしょうか。 何か特に意図があってのことなのでしょうか。 Index: ext/racc/cparse/cparse.c =================================================================== --- ext/racc/cparse/cparse.c (リビジョン 11834) +++ ext/racc/cparse/cparse.c (作業コピー) @@ -393,10 +393,6 @@ rb_gc_mark(v->goto_check); rb_gc_mark(v->goto_default); rb_gc_mark(v->goto_pointer); - rb_gc_mark(v->goto_pointer); - rb_gc_mark(v->goto_pointer); - rb_gc_mark(v->goto_pointer); - rb_gc_mark(v->goto_pointer); rb_gc_mark(v->reduce_table); rb_gc_mark(v->token_table); rb_gc_mark(v->state); 以上、失礼しました。 -------------------------------------------- Chikanaga Tomoyuki NIPPON CONTROL SYSTEM Corporation URL http://www.nippon-control-system.co.jp/ --------------------------------------------