ruby-trunk-changes r57246 - r57252

今日は古い OS X 向けの修正や拡張ライブラリから rb_class_new_instance() や rb_obj_alloc() を型チェックせずに呼ばれた場合を考慮するようにチェックを追加する変更などがありました。

naruse: r57246 2017-01-02 01:42:43 +0900

r54664 で include/ruby/ruby.h に rb_alloc_tmp_buffer2() を導入してマクロ RB_ALLOCV_N() の定義を書き換えた時に余計なかっこがあったのを修正しています。 C_ALLOCA が定義されている環境での定義ですがこれまで判明しなかったとは、とチケットをみると古い Mac OS でこちらが通るみたいですね。 [ruby-dev:49936] [Bug #13091]

svn: r57247 2017-01-02 01:42:44 +0900

version.h の日付更新。

nobu: r57248 2017-01-02 07:20:38 +0900

OS X 10.5 で fgetattrlist() がないのでかわりに getattrlist() を利用するように条件分岐を追加しています。 [ruby-core:68829] [Bug #11054]

nobu: r57249 2017-01-02 09:03:28 +0900

Class.new の実装だった rb_class_new_instance() で receiver が T_CLASS 型のオブジェクトであることを確認するチェックを追加しています。コミットログによると拡張ライブラリが引数のチェックをせずに rb_class_new_instance() を呼んだ場合のためということで Class.new の実装はそのチェック後に呼ばれる rb_class_s_new() に付けなおされているので Class.new した時はその余分なチェックは省かれています。 [ruby-core:78934] [Bug #13093]

nobu: r57250 2017-01-02 09:22:46 +0900

r57249 と同様に Class.allocate の rb_obj_alloc() にも Check_Type() マクロによるチェックを追加しています。こちらも Class.allocate の実装の関数は別名にされてチェックを省いています。 [ruby-core:78934] [Bug #13093]

duerst: r57251 2017-01-02 10:40:12 +0900

doc/maintainers.rdoc の名前とアカウントのあいだのスペースを追加しています。

kazu: r57252 2017-01-02 21:20:09 +0900

標準添付ライブラリ English.rb の frozen_string_literal の magic comment を false から true に変更しています。文字列リテラル 1つもないから true でもまったく影響がなさそうですね。