new indexing algorithm
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@822 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
18
C/save.c
18
C/save.c
@@ -107,8 +107,8 @@ STATIC_PROTO(void restore_codes, (void));
|
||||
STATIC_PROTO(void ConvDBList, (Term, char *,CELL));
|
||||
STATIC_PROTO(Term AdjustDBTerm, (Term));
|
||||
STATIC_PROTO(void RestoreDB, (DBEntry *));
|
||||
STATIC_PROTO(void RestoreClause, (Clause *,int));
|
||||
STATIC_PROTO(void CleanClauses, (yamop *, yamop *));
|
||||
STATIC_PROTO(void RestoreClause, (yamop *, PredEntry *, int));
|
||||
STATIC_PROTO(void CleanClauses, (yamop *, yamop *,PredEntry *));
|
||||
STATIC_PROTO(void rehash, (CELL *, int, int));
|
||||
STATIC_PROTO(void CleanCode, (PredEntry *));
|
||||
STATIC_PROTO(void RestoreEntries, (PropEntry *));
|
||||
@@ -1379,17 +1379,21 @@ UnmarkTrEntries(void)
|
||||
if (IsVarTerm(entry)) {
|
||||
RESET_VARIABLE((CELL *)entry);
|
||||
} else if (IsPairTerm(entry)) {
|
||||
CODEADDR ent = CodeAddrAdjust((CODEADDR)RepPair(entry));
|
||||
CELL *ent = CellPtoHeapAdjust(RepPair(entry));
|
||||
register CELL flags;
|
||||
|
||||
flags = Flags(ent);
|
||||
flags = *ent;
|
||||
ResetFlag(InUseMask, flags);
|
||||
Flags(ent) = flags;
|
||||
*ent = flags;
|
||||
if (FlagOn(ErasedMask, flags)) {
|
||||
if (FlagOn(DBClMask, flags)) {
|
||||
Yap_ErDBE((DBRef) (ent - (CELL) &(((DBRef) NIL)->Flags)));
|
||||
Yap_ErDBE(DBStructFlagsToDBStruct(ent));
|
||||
} else {
|
||||
Yap_ErCl(ClauseFlagsToClause(ent));
|
||||
if (flags & LogUpdMask) {
|
||||
Yap_ErLogUpdCl(ClauseFlagsToLogUpdClause(ent));
|
||||
} else {
|
||||
Yap_ErCl(ClauseFlagsToDynamicClause(ent));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user