fix recover slots.
This commit is contained in:
parent
a35521b52c
commit
94032de135
@ -729,7 +729,7 @@ restore_from_write(struct rewind_term *rwt, struct write_globs *wglb)
|
|||||||
|
|
||||||
if (wglb->Keep_terms) {
|
if (wglb->Keep_terms) {
|
||||||
ptr = (CELL*)Yap_GetPtrFromSlot(rwt->u_sd.s.ptr PASS_REGS);
|
ptr = (CELL*)Yap_GetPtrFromSlot(rwt->u_sd.s.ptr PASS_REGS);
|
||||||
Yap_RecoverSlots(2 PASS_REGS);
|
Yap_RecoverSlots(2, rwt->u_sd.s.ptr PASS_REGS);
|
||||||
} else {
|
} else {
|
||||||
ptr = rwt->u_sd.d.ptr;
|
ptr = rwt->u_sd.d.ptr;
|
||||||
}
|
}
|
||||||
@ -915,7 +915,7 @@ writeTerm(Term t, int p, int depth, int rinfixarg, struct write_globs *wglb, str
|
|||||||
sl = Yap_InitSlot(t PASS_REGS);
|
sl = Yap_InitSlot(t PASS_REGS);
|
||||||
Yap_execute_goal(Yap_MkApplTerm(FunctorPortray, 1, targs), 0, 1);
|
Yap_execute_goal(Yap_MkApplTerm(FunctorPortray, 1, targs), 0, 1);
|
||||||
t = Yap_GetFromSlot(sl PASS_REGS);
|
t = Yap_GetFromSlot(sl PASS_REGS);
|
||||||
Yap_RecoverSlots(1 PASS_REGS);
|
Yap_RecoverSlots(1, sl PASS_REGS);
|
||||||
if (old_EX != NULL) EX = old_EX;
|
if (old_EX != NULL) EX = old_EX;
|
||||||
if (Yap_GetValue(AtomPortray) == MkAtomTerm(AtomTrue))
|
if (Yap_GetValue(AtomPortray) == MkAtomTerm(AtomTrue))
|
||||||
return;
|
return;
|
||||||
@ -999,7 +999,7 @@ writeTerm(Term t, int p, int depth, int rinfixarg, struct write_globs *wglb, str
|
|||||||
sl = Yap_InitSlot(t PASS_REGS);
|
sl = Yap_InitSlot(t PASS_REGS);
|
||||||
Yap_execute_goal(Yap_MkApplTerm(FunctorPortray, 1, targs),0, 1);
|
Yap_execute_goal(Yap_MkApplTerm(FunctorPortray, 1, targs),0, 1);
|
||||||
t = Yap_GetFromSlot(sl PASS_REGS);
|
t = Yap_GetFromSlot(sl PASS_REGS);
|
||||||
Yap_RecoverSlots(1 PASS_REGS);
|
Yap_RecoverSlots(1, sl PASS_REGS);
|
||||||
if (old_EX) EX = old_EX;
|
if (old_EX) EX = old_EX;
|
||||||
if (Yap_GetValue(AtomPortray) == MkAtomTerm(AtomTrue) || EX)
|
if (Yap_GetValue(AtomPortray) == MkAtomTerm(AtomTrue) || EX)
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user