give macros to reset and update chain of attvars in term copy.

This commit is contained in:
Vitor Santos Costa 2010-03-15 14:19:45 +00:00
parent cfc0a23953
commit 54c0209d3a
2 changed files with 33 additions and 1 deletions

View File

@ -436,6 +436,38 @@ reset_trail(tr_fr_ptr TR0) {
}
}
inline EXTERN void
reset_attvars(CELL *dvarsmin, CELL *dvarsmax) {
if (dvarsmin) {
dvarsmin += 1;
do {
CELL *newv;
newv = CellPtr(*dvarsmin);
RESET_VARIABLE(dvarsmin+1);
if (IsUnboundVar(dvarsmin))
break;
RESET_VARIABLE(dvarsmin);
dvarsmin = newv;
} while (TRUE);
}
}
inline EXTERN void
close_attvar_chain(CELL *dvarsmin, CELL *dvarsmax) {
if (dvarsmin) {
dvarsmin += 1;
do {
CELL *newv;
Bind(dvarsmin+1, dvarsmin[1]);
if (IsUnboundVar(dvarsmin))
break;
newv = CellPtr(*dvarsmin);
RESET_VARIABLE(dvarsmin);
dvarsmin = newv;
} while (TRUE);
}
}
EXTERN inline
Int Yap_unify(Term t0, Term t1)
{

@ -1 +1 @@
Subproject commit 99090acf47044ad4a6dc78da634668bdc2bae485
Subproject commit 91ad6583a1387ad6c645c46f258fd671d92fe9fb