ruby-trunk-changes r51359 - r51364

今日は fstring の共有する文字列にフラグやインスタンス変数などのオブジェクトの付随情報は共有させないようにする修正などがありました。

nobu: r51359 2015-07-24 16:35:38 +0900

Filename.extname の rdoc 用コメントにディレクトリ名部分にドットを含むパスを渡した時の挙動の例を追記して、またテストケースにもディレクトリ部分を含む例を追加しています。 https://github.com/ruby/ruby/pull/978

nobu: r51360 2015-07-24 16:38:37 +0900

fstring の管理テーブルに登録する文字列は taint フラグやインスタンス変数を持たず、クラスも String 自体(子クラスのインスタンスではない)ものを登録するようにしています。その判定のために BARE_STRING_P() というマクロを導入し、この条件を満たさない文字列が rb_fstring() に渡されたら新たに bare な文字列オブジェクトを作ってそれを登録し、それとバッファを共有する文字列にして返すようにしています。 rb_fstring() に渡した文字列の taint フラグが引き継がれない不具合を修正しています。 [ruby-dev:49188] [Bug #11386]

svn: r51361 2015-07-24 16:38:47 +0900

version.h の日付更新。

ngoto: r51362 2015-07-24 20:29:49 +0900

標準添付ライブラリ rinda のテストで IPv6 loopback アドレス(::1)を利用しないようにしています。 IPv6 のアドレスのテストで ::1 しかなかったらテストを skip するようにしています。 [ruby-dev:49199] [Bug #11394]

nobu: r51363 2015-07-24 21:27:32 +0900

r51360 の続き。 str_new_frozen() では taint フラグはコピーしないようにしています。 [ruby-dev:49188] [Bug #11386]

nobu: r51364 2015-07-24 21:29:57 +0900

st.c で要素の同値性チェックをする EQUAL() という関数マクロで第2引数と第3引数の両方に key を渡すようにしていたのを、第3引数には st_table_entry * を受け取って ent->key と辿って比較するようにすることで第2引数が検索したいキーで第3引数はテーブルのエントリになるようにしています。