From 47b57348e6d85926d8da91b2136b22f0a079388a 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: svn+ssh://ci.ruby-lang.org/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 c4cd1ac05c..5746d60d8f 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 v1.2.3