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; */
|
/* extern int gc_calls; */
|
||||||
|
|
||||||
vsc_count++;
|
vsc_count++;
|
||||||
if (vsc_count < 3590LL)
|
|
||||||
return;
|
|
||||||
#ifdef COMMENTED
|
#ifdef COMMENTED
|
||||||
// if (vsc_count == 218280)
|
// if (vsc_count == 218280)
|
||||||
// vsc_xstop = 1;
|
// vsc_xstop = 1;
|
||||||
|
@ -737,15 +737,18 @@ not(G) :- \+ '$execute'(G).
|
|||||||
'$execute0'(NG,M).
|
'$execute0'(NG,M).
|
||||||
'$do_undefp'(G,M) :-
|
'$do_undefp'(G,M) :-
|
||||||
\+ '$undefined'(unknown_predicate_handler(_,_,_), user),
|
\+ '$undefined'(unknown_predicate_handler(_,_,_), user),
|
||||||
'$system_catch'(unknown_predicate_handler(G,M,NG), user, _, fail), !,
|
( '$system_catch'(NG,user,Error,'$leave_undefp'(Error)) -> '$exit_undefp' ; '$exit_undefp', fail).
|
||||||
( once('$execute'(user:NG)) -> '$exit_undefp' ; '$exit_undefp', fail).
|
|
||||||
'$do_undefp'(G,M) :-
|
'$do_undefp'(G,M) :-
|
||||||
recorded('$unknown','$unknown'(M:G,US),_), !,
|
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'(_,_) :-
|
'$do_undefp'(_,_) :-
|
||||||
'$exit_undefp',
|
'$exit_undefp',
|
||||||
fail.
|
fail.
|
||||||
|
|
||||||
|
'$leave_undefp'(Ball) :-
|
||||||
|
'$exit_undefp',
|
||||||
|
throw(Ball).
|
||||||
|
|
||||||
|
|
||||||
/* This is the break predicate,
|
/* This is the break predicate,
|
||||||
it saves the importante data about current streams and
|
it saves the importante data about current streams and
|
||||||
|
Reference in New Issue
Block a user