[#21225] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — "U.Nakamura" <usa@...>

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

14 messages 2003/08/22
[#21227] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — nobu.nakada@... 2003/08/22

なかだです。

[#21228] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — matz@... (Yukihiro Matsumoto) 2003/08/22

まつもと ゆきひろです

[#21281] 大量メモリ消費攻撃に対する対応 — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

16 messages 2003/08/29
[#21285] Re: 大量メモリ消費攻撃に対する対応 — matz@... (Yukihiro Matsumoto) 2003/08/29

まつもと ゆきひろです

[#21288] Re: 大量メモリ消費攻撃に対する対応 — Hidetoshi NAGAI <nagai@...> 2003/08/29

永井@知能.九工大です.

[#21306] Re: 大量メモリ消費攻撃に対する対応 — matz@... (Yukihiro Matsumoto) 2003/09/03

まつもと ゆきひろです

[ruby-dev:21135] source file name of .rb required from .so

From: nobu.nakada@...
Date: 2003-08-05 06:25:29 UTC
List: ruby-dev #21135
なかだです。

拡張ライブラリからスクリプトをロードしたあとで、ソースファイル
名が保存されません。

$ cat ext/hoge/hoge.c
#include "ruby.h"

Init_hoge()
{
    rb_require("foobar.rb");
    rb_raise(rb_eRuntimeError, "hoge");
}
$ cat ext/hoge/foobar.rb
# empty

$ ruby -I i686-linux/ext/hoge -I ext/hoge -rhoge -e0
./ext/hoge/foobar.rb: hoge (RuntimeError)

* eval.c (rb_load): should preserve current source file/line.

Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.505
diff -u -2 -p -r1.505 eval.c
--- eval.c	4 Aug 2003 05:28:50 -0000	1.505
+++ eval.c	5 Aug 2003 06:23:38 -0000
@@ -5716,4 +5716,5 @@ rb_load(fname, wrap)
     volatile VALUE wrapper = 0;
     volatile VALUE self = ruby_top_self;
+    NODE *volatile last_node;
     NODE *saved_cref = ruby_cref;
     TMP_PROTECT;
@@ -5760,4 +5761,9 @@ rb_load(fname, wrap)
     state = EXEC_TAG();
     last_func = ruby_frame->last_func;
+    last_node = ruby_current_node;
+    if (!ruby_current_node && ruby_sourcefile) {
+	last_node = NEW_NEWLINE(0);
+    }
+    ruby_current_node = 0;
     if (state == 0) {
 	NODE *node;
@@ -5778,4 +5784,7 @@ rb_load(fname, wrap)
     ALLOW_INTS;
     ruby_frame->last_func = last_func;
+    ruby_current_node = last_node;
+    ruby_sourcefile = 0;
+    ruby_set_current_source();
     if (ruby_scope->flags == SCOPE_ALLOCA && ruby_class == rb_cObject) {
 	if (ruby_scope->local_tbl) /* toplevel was empty */


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread

Prev Next