From 1cdd1249e82ef4870fd60f5e46cbf639a36cf771 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 27 May 2008 13:10:46 +0000 Subject: [PATCH] * 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 --- ChangeLog | 5 ++++- eval_error.c | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 845906fbb2..93df674e9f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,7 @@ -Tue May 27 21:53:49 2008 Nobuyoshi Nakada +Tue May 27 22:10:44 2008 Nobuyoshi Nakada + + * 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;