diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | bootstraptest/test_jump.rb | 12 | ||||
-rw-r--r-- | vm_insnhelper.c | 2 |
3 files changed, 17 insertions, 5 deletions
@@ -1,13 +1,13 @@ +Sun Jan 31 21:10:15 2010 Yusuke Endoh <mame@tsg.ne.jp> + + * vm_insnhelper.c (vm_throw): fixed infinite loop. [ruby-core:27969] + Sun Jan 31 21:29:58 2010 Yusuke Endoh <mame@tsg.ne.jp> * 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 <mame@tsg.ne.jp> - - * vm_insnhelper.c (vm_throw): fixed infinite loop. [ruby-core:27969] - Sun Jan 31 15:50:34 2010 Yusuke Endoh <mame@tsg.ne.jp> * 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); } } } |