[#12164] patch for ext/gdbm — Koji Arai <JCA02266@...>

新井です。

24 messages 2001/02/04
[#12168] Re: patch for ext/gdbm — matz@... (Yukihiro Matsumoto) 2001/02/05

まつもと ゆきひろです

[#12176] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/05

新井です。

[#12179] Re: patch for ext/gdbm — matz@... (Yukihiro Matsumoto) 2001/02/06

まつもと ゆきひろです

[#12219] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/12

新井です。

[#12220] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/12

新井です。

[#12256] set_trace_func — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

15 messages 2001/02/17

[#12293] crash on proc without a block — Kenichi Komiya <kom@...1.accsnet.ne.jp>

15 messages 2001/02/25

[#12323] Re: [ruby-list:28364] class definition extension — "K.Kosako" <kosako@...>

ruby-listから移動しました。

13 messages 2001/02/28
[#12324] Re: [ruby-list:28364] class definition extension — matz@... (Yukihiro Matsumoto) 2001/02/28

まつもと ゆきひろです

[ruby-dev:12307] Re: crash on proc without a block

From: nobu.nakada@...
Date: 2001-02-26 14:14:08 UTC
List: ruby-dev #12307
なかだです。

At Mon, 26 Feb 2001 14:30:00 +0900,
matz@zetabits.com (Yukihiro Matsumoto) wrote:
> |・・・の直前に持ってきてみたら proc{proc}.callでは落ちなくなりまし
> |たがproc{proc}call{1}を試してみたら落ちました。
> 
> あらら。今度はウチでは落ちません。CVS版で試してみてください
> ませんか、時間がとれれば。

  こうしてみました。


Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.157
diff -u -2 -p -r1.157 eval.c
--- eval.c	2001/02/26 05:29:00	1.157
+++ eval.c	2001/02/26 14:12:10
@@ -6262,13 +6262,4 @@ proc_call(proc, args)
     orphan = blk_orphan(data);
 
-    if (orphan) {/* orphan procedure */
-	if (rb_block_given_p()) {
-	    ruby_block->frame.iter = ITER_CUR;
-	}
-	else {
-	    ruby_block->frame.iter = ITER_NOT;
-	}
-    }
-
     /* PUSH BLOCK from data */
     old_block = ruby_block;
@@ -6276,4 +6267,9 @@ proc_call(proc, args)
     ruby_block = &_block;
 
+    if (orphan) {/* orphan procedure */
+	struct BLOCK *blk = old_block ? old_block : ruby_block;
+	blk->frame.iter = rb_block_given_p() ? ITER_CUR : ITER_NOT;
+    }
+
     PUSH_ITER(ITER_CUR);
     ruby_frame->iter = ITER_CUR;


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

In This Thread