From 96149d991f707a9bad2fffb64f7ed8e27d7ff5f7 Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Fri, 10 Oct 2014 12:52:03 +0100 Subject: [PATCH] fix reloading of foreign files: don't allow it even if you are reconsulting, it makes no sense. --- pl/load_foreign.yap | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/pl/load_foreign.yap b/pl/load_foreign.yap index 70dc5234d..e15e16021 100644 --- a/pl/load_foreign.yap +++ b/pl/load_foreign.yap @@ -56,16 +56,21 @@ load_foreign_files(Objs,Libs,Entry) :- '$check_objs_for_load_foreign_files'(Objs,NewObjs,load_foreign_files(Objs,Libs,Entry)), '$check_libs_for_load_foreign_files'(Libs,NewLibs,load_foreign_files(Objs,Libs,Entry)), '$check_entry_for_load_foreign_files'(Entry,load_foreign_files(Objs,Libs,Entry)), - '$current_module'( M ), - recordzifnot( '$foreign', M:'$foreign'(Objs,Libs,Entry), _), - '$load_foreign_files'(NewObjs,NewLibs,Entry), - ( - prolog_load_context(file, F) + ( + recordzifnot( '$foreign', M:'$foreign'(Objs,Libs,Entry), _) + -> + '$load_foreign_files'(NewObjs,NewLibs,Entry), + ( + prolog_load_context(file, F) -> ignore( recordzifnot( '$load_foreign_done', [F, M], _) ) ; - true - ), !. + true + ) + ; + true + ), + !. '$check_objs_for_load_foreign_files'(V,_,G) :- var(V), !, '$do_error'(instantiation_error,G).