ruby-trunk-changes r34141 - r34150

今日は st_table の C API の追加、Test::Unit と FileUtils の修正などがありました。

nobu:r34141 2011-12-27 22:04:30 +0900

CRuby が利用しているハッシュテーブル st_table の C API の追加です。要素の変更、削除をするために st_lookup() で検索して st_insert()/st_delete() するのだと同じ要素を2度探索しないといけないため、一度にまとめてコールバック関数の返り値に従って更新or削除する st_update() という関数を追加しています。 [ruby-dev:44998]
なおテストも追加されているのですが実装は st_table の要素数によって packed(配列にべたに並んでいる時)とハッシュ関数を使っている時で分かれているので、要素数2のハッシュテーブルだけなので前者しか通ってないと思います。

sorah:r34142 2011-12-27 22:37:49 +0900

Test::Unit::Runner::Worker#close の @io.close if @io.closed? を unless @io.closed? に修正しています。

nagachika:r34143 2011-12-28 02:12:24 +0900

vm_insnhelper.c の unknown_keyword_error() 内で生成した String オブジェクトのバッファを rb_raise() に渡すので RB_GC_GUARD() で GC 避けを追加しています。

svn:r34144 2011-12-28 02:12:30 +0900

version.h の日付更新。

nobu:r34146 2011-12-28 11:22:52 +0900

FileUtils::Entry_#entries において Windows プラットフォームを判定するために RUBY_PLATFORM を正規表現でチェックしているのですが、そのために fu_windows? というメソッドが存在するのでそれを利用するようにしています。また Encoding を文字列で指定しているのを Encoding::UTF_8 の定数を利用するようにしています。 [ruby-core:41829] [Bug #5817]

nobu:r34149 2011-12-28 11:40:28 +0900

test/gdbm/test_gdbm.rb と doc/ChangeLog-1.9.3 の mignw -> mingwtypo 修正。

kazu:r34150 2011-12-28 18:13:12 +0900

ChangeLog のインデント修正。