diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-27 13:10:46 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-05-27 13:10:46 +0000 |
commit | 1cdd1249e82ef4870fd60f5e46cbf639a36cf771 (patch) | |
tree | cbce7189579d51eec45af528b36632cb365155b9 | |
parent | bcb57421cb140e708a78911ddf4cd553d6b60d52 (diff) |
* eval_error.c (error_handle): SystemExit and SignalException throws
TAG_RAISE but not TAG_FATAL.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | eval_error.c | 6 |
2 files changed, 8 insertions, 3 deletions
@@ -1,4 +1,7 @@ -Tue May 27 21:53:49 2008 Nobuyoshi Nakada <[email protected]> +Tue May 27 22:10:44 2008 Nobuyoshi Nakada <[email protected]> + + * eval_error.c (error_handle): SystemExit and SignalException throws + TAG_RAISE but not TAG_FATAL. * thread.c (rb_thread_execute_interrupts): delay interrupts during raising exceptions. [ruby-dev:34855] diff --git a/eval_error.c b/eval_error.c index aae7655be2..d22b865e19 100644 --- a/eval_error.c +++ b/eval_error.c @@ -247,8 +247,7 @@ error_handle(int ex) error_pos(); warn_printf(": unexpected throw\n"); break; - case TAG_RAISE: - case TAG_FATAL: { + case TAG_RAISE: { VALUE errinfo = GET_THREAD()->errinfo; if (rb_obj_is_kind_of(errinfo, rb_eSystemExit)) { status = sysexit_status(errinfo); @@ -261,6 +260,9 @@ error_handle(int ex) } break; } + case TAG_FATAL: + error_print(); + break; default: rb_bug("Unknown longjmp status %d", ex); break; |