From: Kazuhiro HIWADA Date: 2000-03-07T13:57:46+09:00 Subject: [ruby-dev:9388] Re: rb_call_super() ひわだです。 全然答えにはなってないんですが…。 From: Yasushi Shoji Subject: [ruby-dev:9383] rb_call_super() Date: Mon, 6 Mar 2000 22:00:59 +0900 > やすしです。 > 1.4.3に rb_call_super()を切り貼りして試しているのですが‥。 > eval.cで > > > if (ruby_frame->last_class == 0) { > > rb_raise(rb_eNameError, "superclass method `%s' disabled", > > rb_id2name(ruby_frame->last_func)); > > と、なっているので、ruby_frame->last_classが 0なんでしょうけど、ruby > internalをまるでわかってないので‥‥‥。 rb_define_method ではメソッドに NOEX_CFUNC なる属性がつくんですが、こ れは現在 NOEX_UNDEF と等価に設定されていまして…、というのが原因かと。 僕は C レベルからは super は呼ばれないから NOEX_CFUNC は NOEX_UNDEF に してあると単純に思ってるんですが(…浅はか?)。 #他に理由がないようなら #define NOEX_CFUNC 0 か(…甘いかも) -- 檜田和浩