ruby-trunk-changes r46894 - r46898

今日は String#count の Shift JIS 文字列での不具合の修正などがありました。

normal: r46894 2014-07-22 01:56:13 +0900

r46892 の rb_io_buffer_t での PACKED_STRUCT() マクロの使いかただと今度は gcc で有効になっていなかったので、struct の宣言と typedef での型の別名の宣言を分けるようにしています。 [ruby-core:63912] [Bug #10079]
これマクロ定義にコメント書いてないとわからないな。

svn: r46895 2014-07-22 01:56:24 +0900

version.h の日付更新。

nobu: r46896 2014-07-22 12:56:26 +0900

文字コードが Shift JIS の文字列で後続のバイトが ASCII 文字のような(8bit 目が 0 の)数値を取り得ることがあり、String#count が誤動作していたのを修正しています。 [ruby-dev:48442] [Bug #10078]

nobu: r46897 2014-07-22 13:33:38 +0900

String#count でレシーバか引数の文字列が Encoding に対して不正なバイト列を含んでいたら例外を発生させるようにしています。 [ruby-dev:48442] [Bug #10078]

nobu: r46898 2014-07-22 14:22:32 +0900

String#count で引数の文字列オブジェクトについてのチェックは1回だけ実行されればいいので、ループの外に括り出して不要な処理をくりかえさないように最適化しています。