ruby-trunk-changes r45362 - r45364

今日は Time オブジェクトを Marshal.load でロードした時にタイムゾーンの文字列が壊れることがある不具合修正がありました。

nobu: r45362 2014-03-19 09:42:26 +0900

r44294 で struct RClass から super が rb_classext_t に移動されていたのに .gdbinit で定義している gdb の rb_method_entry と rb_ancestors というコマンドを追随させています。

svn: r45363 2014-03-19 09:42:29 +0900

version.h の日付更新。

normal: r45364 2014-03-19 17:19:13 +0900

Marshal.load で Time オブジェクトを load した時にタイムゾーンを表現する文字列が RSTRING_PTR(zone) で取り出されて利用されていたため GC された領域を指してしまう可能性があったので、ロードした文字列オブジェクトを freeze したものを利用してその String オブジェクト自体も Time オブジェクトの内部的インスタンス変数(@ で始まらないので Ruby スクリプトからは見えない)に格納しておくようにしています。 [ruby-core:61584] [Bug #9652]