Shugo Maeda <shugo / ruby-lang.org> writes:

> At Tue, 09 Oct 2001 18:43:23 +0900,
> matz / ruby-lang.org (Yukihiro Matsumoto) wrote:
> > |それで何とかなりそうです。でも、GC 的には global に入れて 
> > |rb_global_variable しておいた方が良いような気がしますが、ど
> > |うなんでしょう。struct が VALUE を保持していて rb_errinfo の
> > |値が違うものに変わったときに GC が行なわれると困るような気が
> > |するのですが。
> > 
> > その心配は当たりです。ひとつrb_global_variableされたハッシュ
> > テーブルを持っていて、処理開始から終了まではそこから例外オブ
> > ジェクトを参照するというのがよろしいかも(可能なら)。
> 
> apr_pool_cleanup_register()でpoolごとのcleanup処理を登録でき
> るみたいなので、これでハッシュから要らなくなった例外オブジェクト
> を削除するようにした方がよいかもしれませんね。

なるほど。まだその方法は実装していませんが (TODO に書いただ
け)、Subversion の Ruby binding を公開しました。Subversion
の配布に含まれることになっているので、以下の場所は一時的です
が、とりあえずこんな感じになっています。他の binding を終え
た後に、ここで助言を頂いた方法で exception <-> svn_error_t
の変換を書き直したいと思います。ありがとうございました。

http://www.sodan.org/~penny/tmp/svn-ruby-01.tar.gz

-- 
Yoshiki Hayashi