2004-11-11 [長年日記]
λ. 自己嫌悪。
λ. すりかえられたselfにCからアクセスするには?
instance_evalやdefine_methodを使うとselfがすりかえられた状態でブロックが実行される。rb_iterate()やrb_proc_new()を使ってCの関数をブロックとして与えた場合、Cの関数からこのselfにアクセスするにはどうしたら良いか?
まず思いつくのは ruby_frame->prev->self
だけど……
って、よく見たら第三引数としてselfが渡されてるか。これもUndocumentedっぽいから大差ないかもしれないけど。