[#40961] [Bug #3137] complex.rb changes exceptions of Math — Yusuke Endoh <redmine@...>

Bug #3137: complex.rb changes exceptions of Math

15 messages 2010/04/12

[#41038] Windows と DL が使用条件の libffi — Aaron Patterson <aaron.patterson@...>

こんにちは!アーロンです。

17 messages 2010/04/22
[#41039] Re: Windows と DL が使用条件の libffi — "U.Nakamura" <usa@...> 2010/04/22

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

[#41040] Re: Windows と DL が使用条件の libffi — "NARUSE, Yui" <naruse@...> 2010/04/22

成瀬です。

[#41059] Re: Windows と DL が使用条件の libffi — Aaron Patterson <aaron.patterson@...> 2010/04/26

2010/4/21 NARUSE, Yui <naruse@airemix.jp>:

[#41060] Re: Windows と DL が使用条件の libffi — Yugui <yugui@...> 2010/04/26

2010/4/26 Aaron Patterson <aaron.patterson@gmail.com>:

[#41067] [Feature #3203] LazySweepGC patch — Narihiro Nakamura <redmine@...>

Feature #3203: LazySweepGC patch

15 messages 2010/04/26
[#41069] Re: [Feature #3203] LazySweepGC patch — Yusuke ENDOH <mame@...> 2010/04/27

遠藤です。

[#41104] Rails3 M17N — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

29 messages 2010/04/30
[#41111] Re: Rails3 M17N — Urabe Shyouhei <shyouhei@...> 2010/04/30

Yukihiro Matsumoto さんは書きました:

[#41113] Re: Rails3 M17N — Yukihiro Matsumoto <matz@...> 2010/04/30

まつもと ゆきひろです

[ruby-dev:40911] iseq_s_load が filepath の指定のない ISeq で TypeError 発生

From: nagachika <nagachika00@...>
Date: 2010-04-03 16:03:11 UTC
List: ruby-dev #40911
nagachika と申します。

ISeq で非公開の iseq_s_load を使って遊んでいて気がついたのですが、
trunk で文字列から compile した ISeq をロードさせようとすると
以下のように TypeError が発生します。

iseq_test.rb:12:in `load': can't convert nil into String (TypeError)

iseq->filepath が nil の場合があるのに対応していないようでした。
以下にパッチを貼り付けます。

 ついでに 1.9.2-preview1 と見比べて、ISeq#to_a の結果に filepath と lineno が
追加されているので、一応バージョンを上げるのが良いのではないかと思い
minor を 2->3 にしてみました。
 もっとも iseq_s_load でバージョンチェックしてないですし、そもそも iseq_s_load は
非公開なので、まだ上げるべき時ではないということであればこれは破棄してください。

以上、よろしくお願いします。

Index: iseq.c
===================================================================
--- iseq.c	(revision 27209)
+++ iseq.c	(working copy)
@@ -458,7 +458,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++));
@@ -1321,7 +1322,7 @@
      */
     rb_ary_push(val, rb_str_new2("YARVInstructionSequence/SimpleDataFormat"));
     rb_ary_push(val, INT2FIX(1)); /* major */
-    rb_ary_push(val, INT2FIX(2)); /* minor */
+    rb_ary_push(val, INT2FIX(3)); /* minor */
     rb_ary_push(val, INT2FIX(1));
     rb_ary_push(val, misc);
     rb_ary_push(val, iseq->name);

In This Thread

Prev Next