summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-24 06:29:48 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-24 06:29:48 +0000
commit956dead48069a07eb1211283ae5b276ef45f6768 (patch)
treea674d5c63e71b3e1d0544c31786f1f0c52272d30 /vm.c
parentf52d9a169ba5129554f02cbf0a68f48a3c288b1e (diff)
* compile.c (iseq_set_exception_table, NODE_WHILE, NODE_NEXT): remove
special handling that decrements sp in CATCH_TYPE_NEXT for NODE_WHILE. * vm.c (vm_eval_body), vm_insnhelper.c (vm_throw): remove unused code. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/vm.c b/vm.c
index 708a6ac76b..c97cd2b3c2 100644
--- a/vm.c
+++ b/vm.c
@@ -1259,9 +1259,7 @@ vm_eval_body(rb_thread_t *th)
cfp->pc = cfp->iseq->iseq_encoded + entry->cont;
cfp->sp = cfp->bp + entry->sp;
- if (!(state == TAG_REDO) &&
- !(state == TAG_NEXT && !escape_dfp) &&
- !(state == TAG_BREAK && !escape_dfp)) {
+ if (state != TAG_REDO) {
#if OPT_STACK_CACHING
initial = (GET_THROWOBJ_VAL(err));
#else
@@ -1276,12 +1274,10 @@ vm_eval_body(rb_thread_t *th)
}
else if (state == TAG_REDO) {
type = CATCH_TYPE_REDO;
- escape_dfp = GET_THROWOBJ_CATCH_POINT(err);
goto search_restart_point;
}
else if (state == TAG_NEXT) {
type = CATCH_TYPE_NEXT;
- escape_dfp = GET_THROWOBJ_CATCH_POINT(err);
goto search_restart_point;
}
else {