ruby-trunk-changes r36157 - r36169

akr:r36157 2012-06-21 06:25:20 +0900

Process.exec や spawn の引数の情報を受け取って環境変数の構築など事前に準備処理する rb_execarg_fixup() が struct rb_execarg ではなくそれをラップしたオブジェクト(VALUE 型)を受け取るように引数を変更しています。

ko1:r36158 2012-06-21 07:25:46 +0900

error.c の err_append() という関数を compile_err_append() に改名しています。コンパイル時のエラーを SyntaxError 例外としてセットするための処理で、コンパイル時にしか使われていないのでそれとわかるように改名しているようです。

nobu:r36160 2012-06-21 14:08:24 +0900

process.c (rb_spawn_internal) のローカル変数の型が pid_t のはずが VALUE になっていたところを修正。

nobu:r36161 2012-06-21 17:20:51 +0900

キーワード引数の構文解析部分で NODE (GC の対象)を生成するときに構造体に直接子のNODE を繋げて後で NODE オブジェクトとして包んでいたためその間に GC が走ると子のNODE が開放されてしまう可能性があった問題を修正しています。 [ruby-core:45744]

akr:r36162 2012-06-21 18:39:10 +0900

Process.exec や spawn の引数を解析する rb_execarg_init() も struct rb_execarg ではなくてそれをくるんだオブジェクト(VALUE 型)を引数に受け取るようにリファクタリングしています。

akr:r36163 2012-06-21 19:01:27 +0900

io.c の pipe_open_v() および pipe_open_s() の未使用の変数を削除しています。

akr:r36164 2012-06-21 19:03:23 +0900

process.c の rb_exec_fillarg() も引数に struct rb_execarg ではなくてそれをくるんだオブジェクトを渡すように変更しています。

akr:r36165 2012-06-21 19:48:48 +0900

process.c で rb_run_exec_options_err() という rb_execarg_run_options() のスタブ関数になっていたものを呼んでいたところが残っていたので rb_execarg_run_options() を直接呼ぶようにしています。

akr:r36166 2012-06-21 20:36:25 +0900

rb_check_exec_options() が struct rb_execarg のかわりにそれをくるんだオブジェクト (VALUE 型)を引数に受け取るように変更しています。

akr:r36167 2012-06-21 21:18:40 +0900

rb_execarg_addopt() も struct rb_execarg のかわりにそれをくるんだオブジェクト(VALUE 型)を受け取るように引数を変更しています。

akr:r36168 2012-06-21 21:46:34 +0900

ChangeLog の不要な行が入りこんでいたのを削除しています。

akr:r36169 2012-06-21 22:46:14 +0900

pipe_open_v() と pipe_open_s() で渡された struct rb_execarg をくるんだオブジェクトを GC でマークされるように RB_GC_GUARD() をつけていましたが引数で渡しているため不要だったので削除しています。