fix bad call to garbage collector.

This commit is contained in:
ubu32 2011-07-09 09:16:02 -07:00
parent 04a6911b9f
commit 0424bf6403

View File

@ -1683,7 +1683,6 @@ Yap_absmi(int inp)
{ {
Int sz = PREG->u.Osbpi.i; Int sz = PREG->u.Osbpi.i;
UInt arity = PREG->u.Osbpi.p->ArityOfPE; UInt arity = PREG->u.Osbpi.p->ArityOfPE;
PREG = NEXTOP(PREG,Osbpi);
if (Unsigned(H) + sz > Unsigned(YREG)-CreepFlag) { if (Unsigned(H) + sz > Unsigned(YREG)-CreepFlag) {
YENV[E_CP] = (CELL) CPREG; YENV[E_CP] = (CELL) CPREG;
YENV[E_E] = (CELL) ENV; YENV[E_E] = (CELL) ENV;
@ -1691,6 +1690,7 @@ Yap_absmi(int inp)
YENV[E_DEPTH] = DEPTH; YENV[E_DEPTH] = DEPTH;
#endif /* DEPTH_LIMIT */ #endif /* DEPTH_LIMIT */
SET_ASP(YREG, PREG->u.Osbpi.s); SET_ASP(YREG, PREG->u.Osbpi.s);
PREG = NEXTOP(PREG,Osbpi);
saveregs(); saveregs();
if (!Yap_gcl(sz, arity, YENV, PREG)) { if (!Yap_gcl(sz, arity, YENV, PREG)) {
Yap_Error(OUT_OF_STACK_ERROR,TermNil,LOCAL_ErrorMessage); Yap_Error(OUT_OF_STACK_ERROR,TermNil,LOCAL_ErrorMessage);
@ -1699,7 +1699,9 @@ Yap_absmi(int inp)
} else { } else {
setregs(); setregs();
} }
} } else {
PREG = NEXTOP(PREG,Osbpi);
}
} }
JMPNext(); JMPNext();
ENDBOp(); ENDBOp();