From ff20a23e640718e4ce6878a20fafabe98075cafc Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Fri, 26 Jun 2009 08:42:40 -0500 Subject: [PATCH] stop counters at counter underflow event --- C/errors.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/C/errors.c b/C/errors.c index 28f94d142..e68597115 100644 --- a/C/errors.c +++ b/C/errors.c @@ -518,20 +518,27 @@ Yap_Error(yap_error_number type, Term where, char *format,...) break; case CALL_COUNTER_UNDERFLOW: /* Do a long jump */ - PredEntriesCounter--; + ReductionsCounterOn = FALSE; + PredEntriesCounterOn = FALSE; + RetriesCounterOn = FALSE; Yap_JumpToEnv(MkAtomTerm(AtomCallCounter)); P = (yamop *)FAILCODE; Yap_PrologMode &= ~InErrorMode; return(P); case PRED_ENTRY_COUNTER_UNDERFLOW: /* Do a long jump */ + ReductionsCounterOn = FALSE; + PredEntriesCounterOn = FALSE; + RetriesCounterOn = FALSE; Yap_JumpToEnv(MkAtomTerm(AtomCallAndRetryCounter)); P = (yamop *)FAILCODE; Yap_PrologMode &= ~InErrorMode; return(P); case RETRY_COUNTER_UNDERFLOW: /* Do a long jump */ - PredEntriesCounter--; + ReductionsCounterOn = FALSE; + PredEntriesCounterOn = FALSE; + RetriesCounterOn = FALSE; Yap_JumpToEnv(MkAtomTerm(AtomRetryCounter)); P = (yamop *)FAILCODE; Yap_PrologMode &= ~InErrorMode;