ruby-trunk-changes r56321 - r56323

今日は昨日の String#hash や不正な Fixnum のチェックの変更をフォローする変更が主でした。

nobu: r56321 2016-10-02 07:51:23 +0900

r56320 の再修正で hash 値は負になることもあるので long や LONG_LONG にキャストして から LONG2NUM() や LL2NUM() を使うようにしています。 st_data_t 自体は unsigned なのでこの関数内では負値にはなりませんが、これまで String#hash は負値も返していたので、プラットフォームによってはあまり挙動が変化しないようにしているということかな。

nobu: r56322 2016-10-02 08:22:30 +0900

INT2FIX(), LONG2FIX() などのマクロに RB_ と prefix を追加して RB_INT2FIX(), RB_LONG2FIX() という名前に改名しています。まだ互換性のため古い名前も別名として define しています。

nobu: r56323 2016-10-02 12:32:07 +0900

r56318 で rb_fix2str() で異常な Fixnum の値を検出した時のメッセージに埋め込む値をポインタにキャストするように修正しています。