diff --git a/H/amiops.h b/H/amiops.h index b2968f037..bd6d25c09 100644 --- a/H/amiops.h +++ b/H/amiops.h @@ -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) { diff --git a/packages/chr b/packages/chr index 99090acf4..91ad6583a 160000 --- a/packages/chr +++ b/packages/chr @@ -1 +1 @@ -Subproject commit 99090acf47044ad4a6dc78da634668bdc2bae485 +Subproject commit 91ad6583a1387ad6c645c46f258fd671d92fe9fb