From 4adfd770e62aea26e36154b27fac95d50b3ab1d6 Mon Sep 17 00:00:00 2001 From: matz Date: Sat, 21 Jun 2003 15:36:06 +0000 Subject: * eval.c (proc_invoke): should not propagate distination tag if tag is already handled in this level. (ruby-bugs-ja PR#501) git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index c4cd1ac05..5746d60d8 100644 --- a/eval.c +++ b/eval.c @@ -7000,13 +7000,11 @@ proc_invoke(proc, args, self, klass) state == TAG_BREAK ? "break" : "return"); localjump_error(mesg, prot_tag->retval, state); } - else { + else if (state == incoming_state) { ruby_block->tag->dst = incoming_state; - JUMP_TAG(incoming_state); } - break; default: - JUMP_TAG(incoming_state); + JUMP_TAG(state); } return result; } -- cgit