From d3612e956e745e4817e3263c8d8c355f072ea018 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Wed, 3 Mar 2021 13:56:13 -0700 Subject: [PATCH] catch exceptions thrown from initialization goals (#852) --- src/loader.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/loader.pl b/src/loader.pl index 4bd88e37..52f51d7d 100644 --- a/src/loader.pl +++ b/src/loader.pl @@ -105,23 +105,23 @@ file_load(_, _). file_load(Stream, Path, Evacuable) :- create_file_load_context(Stream, Path, Evacuable), - catch(loader:load_loop(Stream, Evacuable), + catch((loader:load_loop(Stream, Evacuable), + loader:run_initialization_goals), E, builtins:(loader:unload_evacuable(Evacuable), loader:'$print_message_and_fail'(E), builtins:throw(E))), - run_initialization_goals, '$pop_load_context'. load(Stream) :- create_load_context(Stream, Evacuable), - catch(loader:load_loop(Stream, Evacuable), + catch((loader:load_loop(Stream, Evacuable), + loader:run_initialization_goals), E, builtins:(loader:unload_evacuable(Evacuable), loader:'$print_message_and_fail'(E), builtins:throw(E))), - run_initialization_goals, '$pop_load_context', false. %% Clear the heap. load(_). -- 2.54.0