From 54c0209d3aab77c23f9d34274cf6340b15bc03c0 Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Mon, 15 Mar 2010 14:19:45 +0000 Subject: [PATCH] give macros to reset and update chain of attvars in term copy. --- H/amiops.h | 32 ++++++++++++++++++++++++++++++++ packages/chr | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) 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