ruby-trunk-changes r46439 - r46448

今日は Windows での system のリダイレクトなどのファイル名に非ASCII文字を使った時に正しく扱われるようにする不具合修正などがありました。

nobu: r46439 2014-06-16 14:28:03 +0900

process.c の run_exec_open() で RARRAY_AREF() を RSTRING_PTR() の引数に渡していたのを、一旦変数に代入して渡すようにしています。 RSTRING_PTR() は関数マクロなので、RARRAY_AREF() が複数回評価されるように展開されるため。

svn: r46440 2014-06-16 14:28:16 +0900

version.h の日付更新。

nobu: r46441 2014-06-16 14:35:59 +0900

Windows 版で system や Process.spawn のリダイレクトのために使う open の実装を非ASCII文字を含むパスを扱えるように rb_w32_uopen() を利用するようにしています。 チケットにある例はよくわかりませんでしたが… [ruby-core:63185] [Bug #9946]

nobu: r46442 2014-06-16 17:03:42 +0900

basic_obj_respond_to() で引数 priv は VALUE ではなくただの int 型のフラグなので RTEST() でチェックしていたのをやめています。

nobu: r46443 2014-06-16 17:06:39 +0900

Symbol#succ, #cmp, #casecmp, #match, #aref などの Symbol オブジェクトのメソッドで rb_sym_to_s() のかわりに rb_sym2str() を使って Symbol を管理しているテーブルで使われている String オブジェクトそのものを使って、コピーを生成しないようにしています。

hsbt: r46444 2014-06-16 18:17:54 +0900

Date のテストメソッド test_strptime__2 の未使用のローカル変数を除去。

hsbt: r46445 2014-06-16 18:17:55 +0900

同じく Date のテストで未使用のブロックパラメータがあったので削っています。

hsbt: r46446 2014-06-16 18:23:02 +0900

標準添付ライブラリ uri のテストで変数名を typo していたのを修正しています。 上で同名の変数に代入したものでテストが通ってしまっていたみたいですね。

ko1: r46447 2014-06-16 18:45:03 +0900

r46420 から連なるテストの TracePoint のフックの leak 検出の再修正。 before_setup で TracePoint.stat の情報を取っておいて、それと比較するようにしています。 一応 r46434 で前回からの差分でチェックするようになっていましたが、テストメソッドの前後で比較するようにしています。

ko1: r46448 2014-06-16 19:01:44 +0900

同じく r46434 からの TracePoint hook の leak 検出の修正。 r46447 で assert_equal のメッセージをブロックで渡していたので引数で渡すように修正しています。