From fdcafad3e1b57ea790af841d4dd286817839d3d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Wed, 10 Aug 2016 15:28:49 +0200 Subject: [PATCH] Runtime: Improved handling of handle_error() failing at cleaup time. handle_error() throwing errors at cleanup time now generates a "Error in handle_error in master object!" with a meaningful backtrace instead of a "No error recovery context.". --- src/object.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/object.c b/src/object.c index 32752ec0f1..9e61cfb39a 100644 --- a/src/object.c +++ b/src/object.c @@ -797,7 +797,10 @@ static void call_destroy(struct object *o, enum object_destruct_reason reason) UNSETJMP (jmp); move_svalue (&throw_value, &err); } - call_handle_error(); + if (!SETJMP(jmp)) { + call_handle_error(); + } + UNSETJMP(jmp); } else { -- GitLab