From 4f5267ce124dacd21a7cc2bc65cbf6f22ad1ef9b Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 5 Aug 2009 03:46:54 +0000 Subject: * eval.c (rb_eval): does not restore old errinfo when fatal error. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@24402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index a7f732becc..9853911b60 100644 --- a/eval.c +++ b/eval.c @@ -3413,11 +3413,10 @@ rb_eval(self, n) result = prot_tag->retval; } POP_TAG(); - switch (state) { - case 0: break; - default: + if (state != TAG_RAISE && state != TAG_FATAL) { ruby_errinfo = e_info; - case TAG_RAISE: case TAG_FATAL: + } + if (state) { JUMP_TAG(state); } /* no exception raised */ -- cgit v1.2.3