[#41278] [BUG:1.9] BINARY should not be ASCII-compatible — Yugui <yugui@...>

WXVndWkbJEIkRyQ5ISMbKEIKCgo+IBskQiRHISIkKiQqJGAkTSQzJDMkXiRHJE41RE9AJEclKyVQ

15 messages 2010/05/11

[#41407] [Bug #3339] win32ole test failure — Usaku NAKAMURA <redmine@...>

Bug #3339: win32ole test failure

20 messages 2010/05/25
[#41411] Re: [Bug #3339] win32ole test failure — Masaki Suketa <masaki.suketa@...> 2010/05/25

助田です。

[#41412] Re: [Bug #3339] win32ole test failure — "U.Nakamura" <usa@...> 2010/05/25

こんにちは、なかむら(う)です。

[ruby-dev:41126] [Bug #3229] iseq_s_load で TypeError 発生

From: Tomoyuki Chikanaga <redmine@...>
Date: 2010-05-01 02:56:43 UTC
List: ruby-dev #41126
Bug #3229: iseq_s_load で TypeError 発生
http://redmine.ruby-lang.org/issues/show/3229

起票者: Tomoyuki Chikanaga
ステータス: Open, 優先度: Normal
ruby -v: ruby 1.9.2dev (2010-04-30 trunk 27566) [x86_64-darwin10.3.0]

[ruby-dev:40911] をチケットにさせて頂きます。

RubyGems の iseq ライブラリを利用して、文字列から compile した ISeq をロードさせようとすると
以下のように TypeError が発生します。

$ cat test.rb
require "iseq"

iseq = ISeq.compile("pust 'Hello World'")
ISeq.load(iseq.to_a)
$ ruby -v test.rb
ruby 1.9.2dev (2010-04-30 trunk 27566) [x86_64-darwin10.3.0]
test.rb:4:in `load': can't convert nil into String (TypeError)
        from test.rb:4:in `<main>'

iseq->filepath が nil の場合があるのに対応していないようです。
以下のパッチで上記のコードは動くようになりました。

Index: iseq.c
===================================================================
--- iseq.c	(revision 27566)
+++ iseq.c	(working copy)
@@ -465,7 +465,8 @@
 
     name        = CHECK_STRING(rb_ary_entry(data, i++));
     filename    = CHECK_STRING(rb_ary_entry(data, i++));
-    filepath    = CHECK_STRING(rb_ary_entry(data, i++));
+    filepath    = rb_ary_entry(data, i++);
+    filepath    = NIL_P(filepath) ? Qnil : CHECK_STRING(filepath);
     line_no     = CHECK_INTEGER(rb_ary_entry(data, i++));
 
     type        = CHECK_SYMBOL(rb_ary_entry(data, i++));


----------------------------------------
http://redmine.ruby-lang.org

In This Thread

Prev Next