From: Usaku NAKAMURA Date: 2010-09-24T15:18:48+09:00 Subject: [ruby-dev:42295] [Ruby 1.9-Bug#3872][Assigned] is test/-ext-/test_bug-3652.rb correct? Bug #3872: is test/-ext-/test_bug-3652.rb correct? http://redmine.ruby-lang.org/issues/show/3872 起票者: Usaku NAKAMURA ステータス: Assigned, 優先度: Normal 担当者: Nobuyoshi Nakada, カテゴリ: test, Target version: 1.9.x ruby -v: ruby 1.9.3dev (2010-09-24 trunk 29329) [i386-mswin32] 手元で表題のテストがFailureになるのでコードを見ながら考えてみたのですが、 ext/-test-/bug-3652/bug.cのbug_str_resize()内では、 (1) rb_str_buf_new()を使って、指定されたcapaを持つStringを生成して、 (2) そのStringのRSTRING_PTRに、指定された文字列を入れ込んで、 (3) そのStringを指定された長さにrb_str_resize()する という処理をしていますが、(1)で生成されたStringはcapaはセットされていても lenは0のままなので、(3)でresizeされる際にRSTRING_PTRが別のポインタに変化した 場合、中身はコピーされません。 # string.cの1738行目 というわけで、このテスト自体は失敗して当然に見えるのですが、おかしいのは テストなのか、他の部分なのか、どこでしょうか? ---------------------------------------- http://redmine.ruby-lang.org