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 | |
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
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | eval.c | 7 |
2 files changed, 5 insertions, 6 deletions
@@ -1,6 +1,6 @@ -Wed Aug 5 12:36:38 2009 Nobuyoshi Nakada <[email protected]> +Wed Aug 5 12:46:48 2009 Nobuyoshi Nakada <[email protected]> - * eval.c (rb_eval): not discard fatal error. + * eval.c (rb_eval): does not restore old errinfo when fatal error. * eval.c (rb_longjmp): reset raised flag before fatal error. @@ -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 */ |