トップ «前の日記(2004-11-10) 最新 次の日記(2004-11-12)» 月表示 編集

日々の流転


2004-11-11 [長年日記]

λ. 自己嫌悪。

λ. すりかえられたselfにCからアクセスするには?

instance_evalやdefine_methodを使うとselfがすりかえられた状態でブロックが実行される。rb_iterate()やrb_proc_new()を使ってCの関数をブロックとして与えた場合、Cの関数からこのselfにアクセスするにはどうしたら良いか?

まず思いつくのは ruby_frame->prev->self だけど……

って、よく見たら第三引数としてselfが渡されてるか。これもUndocumentedっぽいから大差ないかもしれないけど。

Tags: ruby