keep track that we are exiting unbdefp handler, even if we exit with a throw.

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1250 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc 2005-02-24 22:24:44 +00:00
parent 9807a22069
commit 5e2989c385
2 changed files with 6 additions and 5 deletions

View File

@ -120,8 +120,6 @@ low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args)
/* extern int gc_calls; */
vsc_count++;
if (vsc_count < 3590LL)
return;
#ifdef COMMENTED
// if (vsc_count == 218280)
// vsc_xstop = 1;

View File

@ -737,15 +737,18 @@ not(G) :- \+ '$execute'(G).
'$execute0'(NG,M).
'$do_undefp'(G,M) :-
\+ '$undefined'(unknown_predicate_handler(_,_,_), user),
'$system_catch'(unknown_predicate_handler(G,M,NG), user, _, fail), !,
( once('$execute'(user:NG)) -> '$exit_undefp' ; '$exit_undefp', fail).
( '$system_catch'(NG,user,Error,'$leave_undefp'(Error)) -> '$exit_undefp' ; '$exit_undefp', fail).
'$do_undefp'(G,M) :-
recorded('$unknown','$unknown'(M:G,US),_), !,
( once('$execute'(user:US)) -> '$exit_undefp' ; '$exit_undefp', fail).
( '$system_catch'(US,user,Error,'$leave_undefp'(Error)) -> '$exit_undefp' ; '$exit_undefp', fail).
'$do_undefp'(_,_) :-
'$exit_undefp',
fail.
'$leave_undefp'(Ball) :-
'$exit_undefp',
throw(Ball).
/* This is the break predicate,
it saves the importante data about current streams and