fix nb_terms
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1408 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
3c1dbc22df
commit
40c2f19c7a
10
C/arrays.c
10
C/arrays.c
@ -182,17 +182,17 @@ GetNBTerm(live_term *ar, Int indx)
|
|||||||
}
|
}
|
||||||
if (IsVarTerm(termt)) {
|
if (IsVarTerm(termt)) {
|
||||||
Term livet = MkVarTerm();
|
Term livet = MkVarTerm();
|
||||||
Bind(&(ar[indx].tlive), livet);
|
MaBind(&(ar[indx].tlive), livet);
|
||||||
return livet;
|
return livet;
|
||||||
} else if (IsAtomicTerm(termt)) {
|
} else if (IsAtomicTerm(termt)) {
|
||||||
Bind(&(ar[indx].tlive), termt);
|
MaBind(&(ar[indx].tlive), termt);
|
||||||
return termt;
|
return termt;
|
||||||
} else {
|
} else {
|
||||||
DBTerm *ref = (DBTerm *)RepAppl(termt);
|
DBTerm *ref = (DBTerm *)RepAppl(termt);
|
||||||
if ((livet = GetTermFromArray(ref)) == TermNil) {
|
if ((livet = GetTermFromArray(ref)) == TermNil) {
|
||||||
return TermNil;
|
return TermNil;
|
||||||
}
|
}
|
||||||
Bind(&(ar[indx].tlive), livet);
|
MaBind(&(ar[indx].tlive), livet);
|
||||||
return livet;
|
return livet;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1689,10 +1689,12 @@ p_assign_static(void)
|
|||||||
|
|
||||||
case array_of_nb_terms:
|
case array_of_nb_terms:
|
||||||
|
|
||||||
RESET_VARIABLE(&(ptr->ValueOfVE.lterms[indx].tlive));
|
|
||||||
{
|
{
|
||||||
Term told = ptr->ValueOfVE.lterms[indx].tstore;
|
Term told = ptr->ValueOfVE.lterms[indx].tstore;
|
||||||
Term tnew = Deref(ARG3);
|
Term tnew = Deref(ARG3);
|
||||||
|
|
||||||
|
CELL *livep = &(ptr->ValueOfVE.lterms[indx].tlive);
|
||||||
|
MaBind(livep,(CELL)livep);
|
||||||
/* recover space */
|
/* recover space */
|
||||||
if (IsApplTerm(told)) {
|
if (IsApplTerm(told)) {
|
||||||
Yap_ReleaseTermFromDB((DBTerm *)RepAppl(told));
|
Yap_ReleaseTermFromDB((DBTerm *)RepAppl(told));
|
||||||
|
Reference in New Issue
Block a user