ruby-trunk-changes r48742 - r48747

今日は thread.c の再帰呼び出しチェック用の処理の不具合の修正などがありました。

nobu: r48742 2014-12-09 10:05:18 +0900

ruby の初期化処理でロードパスを生成するところで dladdr(3) を使ったり Windows 版の時などパスが可変長の場合と、固定長の配列を使う時で VARIABLE_LIBPATH というマクロで処理を切り分けているのですが、末尾に nul 文字を追加する処理を固定長の時だけにしています。可変長の時は文字列オブジェクトのバッファなので共有文字列の内容を書き変えてしまうのを防いでいるようです。

svn: r48743 2014-12-09 10:05:27 +0900

version.h の日付更新。

nobu: r48744 2014-12-09 10:16:27 +0900

thread.c の再帰呼び出しの検出処理でメソッド名の ID として不正な ID を作ってしまい SEGV する可能性があった不具合を修正しています。 rb_frame_this_func() のかわりに rb_frame_last_func() という関数を作成して、また Qnil の時は idNULL を使うようにしています。 これ recursive_pop() のほうでは rb_frame_this_func() を使っているままなのですけど、ここは同じように変更しなくても大丈夫でしょうか? [ruby-core:66742] [Bug #10579]

nobu: r48745 2014-12-09 12:48:35 +0900

rb_eval_string_wrap() という C API の rdoc 用コメントでこれが require 相当であると書かれていましたが load 相当だったので修正しています。 https://github.com/ruby/ruby/pull/779

nobu: r48746 2014-12-09 18:20:05 +0900

Object の #inspect, #nil?, #tap や Integer(), Array() などのメソッドの rdoc の英文法やサンプルコードの修正。 [ruby-core:66368] [Bug #10526]

hsbt: r48747 2014-12-09 20:24:46 +0900

String#chomp の rdoc 用コメントに空文字列を指定した時の改行コードの扱いについてサンプルコードを追記しています。 https://github.com/ruby/ruby/pull/780