ruby-trunk-changes r63101 - r63103

今日は(まだ昼過ぎですが)、ISeq のバイナリフォーマットからのロード時に SEGV することがある不具合の修正がありました。

nobu: r63101 2018-04-05 21:03:36 +0900

compile.c に構造体のメモリ領域を 0 クリアするマクロ IBF_ZERO() を導入して ISeq のバイナリフォーマットダンプで使う構造体を初期化するようにしています。

nobu: r63102 2018-04-05 21:46:46 +0900

r63099 の続きで ISeq のバイナリフォーマットへのダンプ時に insns_info.succ_index_table を 0 クリアしてダンプしないようにしています。なるほどただのリファクタリングっぽいと思ったけどこれが抜けてたのか。

nobu: r63103 2018-04-05 22:13:00 +0900

ISeq のバイナリフォーマットからの load で SEGV することがあるという既知の不具合を修正しています。修正は ibf_load_iseq_each() 内で rb_iseq_insns_info_encode_positions() の呼び出しの位置を少し後ろに移動しています。 ibf_load_code() を呼んだ後でないといけなかったみたいですね。 [ruby-core:86437] [Bug #14660]