diff options
author | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-31 12:41:47 +0000 |
---|---|---|
committer | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-31 12:41:47 +0000 |
commit | 3a9ce187de26c805d1f266666572689d2947cf37 (patch) | |
tree | e42c6a857c3e5fae2afd5d4e9960d7193989eee6 | |
parent | 323d23c44b58ab5f9d6ddd177d54d6fc7f1f4217 (diff) |
* 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
-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); } } } |