[#31166] is_ruby_native_thread() — Masahiro Sakai (酒井政裕) <masahiro.sakai@...>

酒井です。

16 messages 2007/07/08
[#31269] Re: is_ruby_native_thread() — Nobuyoshi Nakada <nobu@...> 2007/07/21

なかだです。

[#31270] Re: is_ruby_native_thread() — Hidetoshi NAGAI <nagai@...> 2007/07/22

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

[#31298] retryの使い方 — eklerni <eklerni@...>

松尾といいます。

52 messages 2007/07/25
[#31299] Re: retryの使い方 — SASADA Koichi <ko1@...> 2007/07/26

 ささだです。

[#31300] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

松尾です、返信ありがとうございます。

[#31303] Re: retryの使い方 — Yugui <yugui@...> 2007/07/26

Yuguiといいます。

[#31306] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

松尾といいます。

[#31308] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/26

In article <46A909DD.1070405@for.mail-box.ne.jp>,

[#31310] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

Tanaka Akira さんは書きました:

[#31314] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/30

In article <46A92530.80507@for.mail-box.ne.jp>,

[#31315] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/30

Tanaka Akira さんは書きました:

[#31316] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/30

In article <46AD7A16.8080509@for.mail-box.ne.jp>,

[#31317] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/31

松尾です。

[#31381] Re: retryの使い方 — SASADA Koichi <ko1@...> 2007/08/12

 ささだです。

[#31422] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/15

まつもと ゆきひろです

[#31425] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/15

In article <E1ILDTi-0005T6-Be@x31>,

[#31426] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/15

まつもと ゆきひろです

[#31433] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/16

In article <E1ILKn6-0003Nv-0f@x31>,

[#31435] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/16

まつもと ゆきひろです

[#31447] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/16

In article <E1ILVN9-0006xJ-7I@x31>,

[#31450] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/17

In article <E1ILq4x-0002Bs-Lg@x31>,

[#31451] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/17

まつもと ゆきひろです

[ruby-dev:31120] Re: loop{x+=1&&next} dumps core

From: SASADA Koichi <ko1@...>
Date: 2007-07-03 15:20:59 UTC
List: ruby-dev #31120
 ささだです。

Yusuke ENDOH wrote:
> 1.9 で以下のようにすると落ちます。
...
> $ ./ruby -e 'loop{x+=1&&next}'
...
> あと、loop{x+=1&&redo} でも落ちます。

 たとえば、1.times{1+(1&&next)} でも起きます。つまり、何らか
の値が積まれている状態で、next(jump)すると、そのゴミが残って
しまう、という症状です。

 これは困りました。うまい解決方法が思いつきません。

 なんというか、例えば 1 + (f?next:0) なんかはエラーなので、1+
(1&&next) もエラーとなってくれると良いと思うんですが、ダメで
しょうか。


Index: parse.y
===================================================================
--- parse.y	(リビジョン 12679)
+++ parse.y	(作業コピー)
@@ -7452,8 +7452,6 @@ node_assign_gen(struct parser_params *pa
 static int
 value_expr_gen(struct parser_params *parser, NODE *node)
 {
-    int cond = 0;
-
     while (node) {
 	switch (nd_type(node)) {
 	  case NODE_DEFN:
@@ -7466,7 +7464,7 @@ value_expr_gen(struct parser_params *par
 	  case NODE_NEXT:
 	  case NODE_REDO:
 	  case NODE_RETRY:
-	    if (!cond) yyerror("void value expression");
+	    yyerror("void value expression");
 	    /* or "control never reach"? */
 	    return Qfalse;

@@ -7488,7 +7486,6 @@ value_expr_gen(struct parser_params *par

 	  case NODE_AND:
 	  case NODE_OR:
-	    cond = 1;
 	    node = node->nd_2nd;
 	    break;




 しかし、遠藤さんよくこんなの見つけられますね。やっぱりコード
を精査されてるんでしょうか。

-- 
// SASADA Koichi at atdot dot net


In This Thread