山本です。 >> すみません、まだ落ちます。 > >再現する条件を教えてもらえますか。 miniruby *.rb とか、引数でワイルドカード展開をさせると落ちます。 >> 1. ALLOC_N や malloc なんかも GC を発生させる可能性があるので、 >> もう、どんな関数も ruby_init 前に呼び出すのは危険な気がする。 > >malloc()は発生させません。init_env()でも何も考えずにALLOC_Nを使っ >てしまってました。 すみません、xmalloc と混同してました。 ただ、ALLOC_N も便利な面があるので、メモリ関数だけは失敗したときに if (!ruby_running) rb_bug とかするのはどうでしょうか。 実は、glob_helper に渡される int flags, int (*func)(const char *, VALUE), VALUE arg を構造体にまとめて、status もこれに入れて、ついでに警告表示関数も func 同様これに入れるというアイデアがあったのですが、ALLOC をどうするか でネックになっていました。 # とりあえず ALLOC のことは忘れて、私も組んでみようと思います。