From 3a9ce187de26c805d1f266666572689d2947cf37 Mon Sep 17 00:00:00 2001 From: mame Date: Sun, 31 Jan 2010 12:41:47 +0000 Subject: * vm_insnhelper.c (vm_throw): fixed infinite loop. [ruby-core:27969] (re-commit of r26522 since forgot to add a change, sorry) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++---- bootstraptest/test_jump.rb | 12 ++++++++++++ vm_insnhelper.c | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index f7d97d30ef..53e5a7332a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,13 +1,13 @@ +Sun Jan 31 21:10:15 2010 Yusuke Endoh + + * vm_insnhelper.c (vm_throw): fixed infinite loop. [ruby-core:27969] + Sun Jan 31 21:29:58 2010 Yusuke Endoh * lib/rexml/text.rb (REXML::Text#initialize): do Text.check only when parent is specified, since Text.check may need doctype. partially revert r26518. -Sun Jan 31 21:10:15 2010 Yusuke Endoh - - * vm_insnhelper.c (vm_throw): fixed infinite loop. [ruby-core:27969] - Sun Jan 31 15:50:34 2010 Yusuke Endoh * lib/rexml/text.rb (REXML::Text#initialize): fix typo and a bug that diff --git a/bootstraptest/test_jump.rb b/bootstraptest/test_jump.rb index 77467337c2..bfb380e45b 100644 --- a/bootstraptest/test_jump.rb +++ b/bootstraptest/test_jump.rb @@ -259,3 +259,15 @@ assert_normal_exit %q{ end end } + +assert_normal_exit %q{ + -> do + 1.times do + begin + raise + rescue + return + end + end + end.call +} diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 54d54ff195..ae1d86d97b 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -1491,7 +1491,7 @@ vm_throw(rb_thread_t *th, rb_control_frame_t *reg_cfp, dfp = cfp->dfp; goto valid_return; } - tdfp = GC_GUARDED_PTR_REF((VALUE *)*dfp); + tdfp = GC_GUARDED_PTR_REF((VALUE *)*tdfp); } } } -- cgit v1.2.3