From 8155e3fbf17cba5f65b5e33930835483049c910c Mon Sep 17 00:00:00 2001 From: vsc Date: Thu, 3 Jan 2002 16:27:00 +0000 Subject: [PATCH] don't do garbage collection while in ErrorMode git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@262 b08c6af1-5177-4d33-ba66-4b1c6b8b522a --- C/dbase.c | 7 ++++++- C/tracer.c | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/C/dbase.c b/C/dbase.c index eac3447dc..f15f59a33 100644 --- a/C/dbase.c +++ b/C/dbase.c @@ -2036,7 +2036,12 @@ GetDBTerm(DBRef DBSP) pt = CellPtr(DBSP->Contents); NOf = DBSP->NOfCells; if (H+NOf > ASP-CalculateStackGap()) { - return((Term)0); + if (PrologMode & InErrorMode) { + if (H+NOf > ASP) + exit_yap( 1, "No Stack for Error Handling\n"); + } else { + return((Term)0); + } } HeapPtr = cpcells(HOld, pt, NOf); pt += HeapPtr - HOld; diff --git a/C/tracer.c b/C/tracer.c index 324fe383b..6f9f59a2c 100644 --- a/C/tracer.c +++ b/C/tracer.c @@ -72,7 +72,11 @@ send_tracer_message(char *start, char *name, Int arity, char *mname, CELL *args) YP_fprintf(YP_stderr, "\n"); } +#if defined(__GNUC__) +unsigned long long vsc_count; +#else unsigned long vsc_count; +#endif /* static int @@ -114,7 +118,7 @@ low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args) extern int gc_calls; vsc_count++; - /* if (vsc_count < 1025) return; */ + if (vsc_count < 49036000) return; /* if (vsc_count > 500000) exit(0); */ /* if (gc_calls < 1) return;*/ YP_fprintf(YP_stderr,"%lu (%x) ", vsc_count, CreepFlag);