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:
parent
9807a22069
commit
5e2989c385
@ -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;
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user