diff options
-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; |