[#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:12299] Re: crash on proc without a block

From: Kenichi Komiya <kom@...1.accsnet.ne.jp>
Date: 2001-02-25 20:51:48 UTC
List: ruby-dev #12299
小宮です

From: matz@zetabits.com (Yukihiro Matsumoto)
Subject: [ruby-dev:12295] Re: crash on proc without a block
Date: Mon, 26 Feb 2001 01:41:11 +0900

> いい線ですね。実際には
> 
>     if (orphan) {/* orphan procedure */
> 	if (rb_block_given_p()) {
> 	    ruby_block->frame.iter = ITER_CUR;
> 	}
> 	else {
> 	    ruby_block->frame.iter = ITER_NOT;
> 	}
>     }

え〜っと、コレを単純に・・・

> 
> の部分が
> 
>     PUSH_ITER(ITER_CUR);
>     ruby_frame->iter = ITER_CUR;
> 
> よりも後ろにあったのが原因でした。
> 

・・・の直前に持ってきてみたら proc{proc}.callでは落ちなくなりまし
たがproc{proc}call{1}を試してみたら落ちました。

$ ./miniruby -e 'def foo; binding; end; eval "proc{proc}.call", foo'
./miniruby -e 'def foo; binding; end; eval "proc{proc}.call", foo'
-e:1:in `eval': tried to create Procedure-Object without a block (ArgumentError)
	from -e:1
$ ./miniruby -e 'def foo; binding; end; eval "proc{proc}.call {1}", foo'
./miniruby -e 'def foo; binding; end; eval "proc{proc}.call {1}", foo'
(eval):1: [BUG] Segmentation fault
ruby 1.6.3 (2001-02-24) [i686-linux]
Aborted
$ 

それはそうと「callに渡したブロックは無視される」であっていますか?
(調べていたらソースにそれらしき警告が書いてあったので間違いないと
思いますが。)もともとはそれをirbでちょっと確認しようと思っただけな
んですが。

小宮 健一

In This Thread