チケット #3136 が更新されました。 (by Yusuke Endoh)


遠藤です。

以下でも SEGV または未定義挙動をします。

  Class.new do
    define_method(:foo) { super() }.call
  end

define_method に Proc が登録されることで、Proc のブロックの iseq
の klass が更新されてしまいます。
その Proc を直接呼び出すと、cfp に method_entry が乗らないけれど
super 先の候補になってしまい、落ちるようです。

ブロックの iseq の klass を元に super 先を決めているのが悪いので、
同じ原因と言えます。

違う問題かと悩んだので、登録しておきます。

-- 
Yusuke Endoh <mame / tsg.ne.jp>
----------------------------------------
http://redmine.ruby-lang.org/issues/show/3136

----------------------------------------
http://redmine.ruby-lang.org