ruby-changes:2817
From: ko1@a...
Date: 18 Dec 2007 23:55:16 +0900
Subject: [ruby-changes:2817] nobu - Ruby:r14308 (trunk): * compile.c (iseq_compile_each): fix for segfault.
nobu 2007-12-18 23:53:55 +0900 (Tue, 18 Dec 2007) New Revision: 14308 Modified files: trunk/ChangeLog trunk/bootstraptest/test_eval.rb trunk/bootstraptest/test_knownbug.rb trunk/compile.c Log: * compile.c (iseq_compile_each): fix for segfault. [ruby-dev:31372] http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/compile.c?r1=14308&r2=14307 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14308&r2=14307 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/bootstraptest/test_eval.rb?r1=14308&r2=14307 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/bootstraptest/test_knownbug.rb?r1=14308&r2=14307 Index: ChangeLog =================================================================== --- ChangeLog (revision 14307) +++ ChangeLog (revision 14308) @@ -1,3 +1,7 @@ +Tue Dec 18 23:53:53 2007 Nobuyoshi Nakada <nobu@r...> + + * compile.c (iseq_compile_each): fix for segfault. [ruby-dev:31372] + Tue Dec 18 23:44:32 2007 GOTOU Yuuzou <gotoyuzo@n...> * test/net/http/utils.rb: split TestNetHTTPUtils module from Index: bootstraptest/test_eval.rb =================================================================== --- bootstraptest/test_eval.rb (revision 14307) +++ bootstraptest/test_eval.rb (revision 14308) @@ -188,3 +188,8 @@ C.new(&$pr) $ans } + +assert_match /Illegal break/, %q{ + STDERR.reopen(STDOUT) + eval "0 rescue break" +}, '[ruby-dev:31372]' Index: bootstraptest/test_knownbug.rb =================================================================== --- bootstraptest/test_knownbug.rb (revision 14307) +++ bootstraptest/test_knownbug.rb (revision 14308) @@ -36,10 +36,6 @@ } assert_normal_exit %q{ - eval "0 rescue break" -}, '[ruby-dev:31372]' - -assert_normal_exit %q{ eval "while true; return; end rescue p $!" }, '[ruby-dev:31663]' Index: compile.c =================================================================== --- compile.c (revision 14307) +++ compile.c (revision 14308) @@ -2946,7 +2946,7 @@ } else { rb_iseq_t *ip = iseq->parent_iseq; - while (ip) { + while (ip && ip->compile_data) { level++; if (ip->compile_data->redo_label != 0) { level = 0x8000; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml