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:
		@@ -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