From dccf3cf8a235562be63cf8f784dd9a9374a2c50e Mon Sep 17 00:00:00 2001 From: Costa Vitor Date: Wed, 12 Aug 2009 10:00:38 -0500 Subject: [PATCH] assert logupd should set the clause in use (obs by Jose Santos). --- C/cdmgr.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/C/cdmgr.c b/C/cdmgr.c index f38df2397..f20f144bb 100644 --- a/C/cdmgr.c +++ b/C/cdmgr.c @@ -2238,7 +2238,17 @@ addclause(Term t, yamop *cp, int mode, Term mod, Term *t4ref) } UNLOCK(p->PELock); if (pflags & LogUpdatePredFlag) { - tf = MkDBRefTerm((DBRef)ClauseCodeToLogUpdClause(cp)); + LogUpdClause *cl = (DBRef)ClauseCodeToLogUpdClause(cp); + tf = MkDBRefTerm((DBRef)cl); +#if defined(YAPOR) || defined(THREADS) + TRAIL_CLREF(cl); /* So that fail will erase it */ + INC_CLREF_COUNT(cl); +#else + if (!(cl->ClFlags & InUseMask)) { + cl->ClFlags |= InUseMask; + TRAIL_CLREF(cl); /* So that fail will erase it */ + } +#endif } else { tf = Yap_MkStaticRefTerm(ClauseCodeToStaticClause(cp)); }