diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-08-05 03:46:54 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-08-05 03:46:54 +0000 |
commit | 4f5267ce124dacd21a7cc2bc65cbf6f22ad1ef9b (patch) | |
tree | 4e9abcec22db85f4d2dc883103ca1f53a12175bd /eval.c | |
parent | c41d275f6bd7bf450e947d0e6fd3d2fae86b0d15 (diff) |
* 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
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -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 */ |