From: "KISHIMOTO, Makoto" Date: 2010-12-29T21:18:05+09:00 Subject: [ruby-dev:42910] Re: [Ruby 1.9-Bug#4178] test/rubygems/gemutilities.rb で、よくわからない ArgumentError きしもとです このエントリに登録したスクリプトで試しましたが、治まりました。 make test-all TESTS='--gc-stress -v rubygems' の実行を待っているのですが 終わりそうにないので、とりあえず報告まで。 On Wed, 29 Dec 2010 19:31:05 +0900 _ wanabe wrote: > チケット #4178 が更新されました。 (by _ wanabe) > > > すみません、下記のパッチで症状が治まるか確認して頂けないでしょうか。 > rb_iseq_clone で作られた iseqval が最適化でスタックに置かれず、GC されてしまっているのではないかと思います。 > > diff --git a/vm.c b/vm.c > index 015456b..4a80f5d 100644 > --- a/vm.c > +++ b/vm.c > @@ -1838,6 +1838,7 @@ vm_define_method(rb_thread_t *th, VALUE obj, ID id, VALUE iseqval, > > if (miseq->klass) { > iseqval = rb_iseq_clone(iseqval, 0); > + RB_GC_GUARD(iseqval); > GetISeqPtr(iseqval, miseq); > } > > > ---------------------------------------- > http://redmine.ruby-lang.org/issues/show/4178