rb_funcall の引数指定
Segmentation fault 出ると思ったらまた rb_funcall の引数が間違ってた。
VALUE rb_funcall(VALUE recv, ID mid, int argc, ...)
- recv: メソッドを呼び出す対象。
- mid: メソッドを ID で指定。rb_intern("new") とか
- argc: メソッドに与えたい引数の数
- ...: 与える引数を順に指定
Runo::Enum の initialize メソッドはこうだから、
static VALUE runo_enum_initialize(VALUE self, VALUE type_name, VALUE value)
new を呼ぶには
ID id = rb_intern("new"); rb_funcall(klass, id, 2, type_name, value);
昨日もこれで悩んだのに・・・。