[#20227] dyna_vars problem? — Tanaka Akira <akr@...17n.org>

しばらく前から、稀に Ruby が core を吐くという問題を追いかけているので

15 messages 2003/05/19
[#20234] Re: dyna_vars problem? — matz@... (Yukihiro Matsumoto) 2003/05/19

まつもと ゆきひろです

[#20236] Re: dyna_vars problem? — Tanaka Akira <akr@...17n.org> 2003/05/19

In article <1053363181.529491.30320.nullmailer@picachu.netlab.jp>,

[ruby-dev:20265] Re: Exception#initialize

From: matz@... (Yukihiro Matsumoto)
Date: 2003-05-21 14:09:06 UTC
List: ruby-dev #20265
まつもと ゆきひろです

In message "[ruby-dev:20264] Re: Exception#initialize"
    on 03/05/21, nobu.nakada@nifty.ne.jp <nobu.nakada@nifty.ne.jp> writes:

|rb_sys_fail()で、Errnoにマッピングしてるのにさらにerrnoを指定し
|てるためにエラーになります。

あ、しまった。添付のような修正が好みです。

|Rubyレベルでも自動的にErrnoができるほうがいいか悪いか。

悪いんじゃないかと考えています。

Index: error.c
===================================================================
RCS file: /src/ruby/error.c,v
retrieving revision 1.68
diff -p -u -1 -r1.68 error.c
--- error.c	21 May 2003 08:48:02 -0000	1.68
+++ error.c	21 May 2003 14:04:32 -0000
@@ -729,3 +729,3 @@ rb_sys_fail(mesg)
     int n = errno;
-    VALUE argv[2];
+    VALUE arg;
 
@@ -736,5 +736,4 @@ rb_sys_fail(mesg)
 
-    argv[0] = mesg ? rb_str_new2(mesg) : Qnil;
-    argv[1] = INT2NUM(n);
-    rb_exc_raise(rb_class_new_instance(2, argv, get_syserr(n)));
+    arg = mesg ? rb_str_new2(mesg) : Qnil;
+    rb_exc_raise(rb_class_new_instance(1, &arg, get_syserr(n)));
 }

In This Thread