[#24536] 「Rubyの落し方」 v.s. ruby_1_8 — akira yamada / やまだあきら <akira@...>

<URL:http://jp.rubyist.net/magazine/?0002-RubyCore>

40 messages 2004/10/20
[#24541] Re: 「Rubyの落し方」 v.s. ruby_1_8 — Yukihiro Matsumoto <matz@...> 2004/10/20

まつもと ゆきひろです

[#24599] 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/26

2004-10-20 (水) の 21:38 +0900 に Yukihiro Matsumoto さんは書きました:

[#24605] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-26 (火) の 16:16 +0900 に akira yamada / やまだあきら さんは書きました:

[#24606] Re: 1.8.2 preview3? — Yukihiro Matsumoto <matz@...> 2004/10/27

まつもと ゆきひろです

[#24608] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 11:48 +0900 に Yukihiro Matsumoto さんは書きました:

[#24620] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 12:42 +0900 に akira yamada / やまだあきら さんは書きました:

[#24629] Re: 1.8.2 preview3? — Tanaka Akira <akr@...17n.org> 2004/10/29

In article <1098888819.9446.14.camel@rice.p.arika.org>,

[ruby-dev:24628] -n option dumps core

From: nobu@...
Date: 2004-10-29 02:12:19 UTC
List: ruby-dev #24628
なかだです。

本体なしで-p/-nオプションを使うとcoreを吐きます。

  $ ruby -pe ''
  -e:1: [BUG] Segmentation fault
  ruby 1.9.0 (2004-10-28) [i686-linux]

  アボートしました (core dumped)

  $ ruby -ne ''
  -e:1: [BUG] Segmentation fault
  ruby 1.9.0 (2004-10-28) [i686-linux]

  アボートしました (core dumped)


* parse.y (rb_parser_append_print, rb_parser_while_loop): body node
  can be empty.


Index: parse.y
===================================================================
RCS file: /cvs/ruby/src/ruby/parse.y,v
retrieving revision 1.353
diff -u -2 -p -r1.353 parse.y
--- parse.y	20 Oct 2004 15:44:05 -0000	1.353
+++ parse.y	29 Oct 2004 01:57:10 -0000
@@ -7772,7 +7772,8 @@ rb_parser_append_print(node)
     NODE *node;
 {
-    NODE *prelude = (nd_type(node) == NODE_PRELUDE) ? node : 0;
+    NODE *prelude = 0;
 
-    if (prelude) {
+    if (node && (nd_type(node) == NODE_PRELUDE)) {
+	prelude = node;
 	node = node->nd_body;
     }
@@ -7792,7 +7793,8 @@ rb_parser_while_loop(node, chop, split)
     int chop, split;
 {
-    NODE *prelude = (nd_type(node) == NODE_PRELUDE) ? node : 0;
+    NODE *prelude = 0;
 
-    if (prelude) {
+    if (node && (nd_type(node) == NODE_PRELUDE)) {
+	prelude = node;
 	node = node->nd_body;
     }


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

In This Thread

Prev Next