make sure we have enough room before we enter a clause.

This commit is contained in:
Vítor Santos Costa
2010-08-02 18:20:03 +01:00
parent 3d6e223dae
commit ffc094e25f
7 changed files with 43 additions and 28 deletions

View File

@@ -44,10 +44,16 @@ restore_opcodes(yamop *pc, yamop *max)
case _p_execute:
OrArgAdjust(pc->u.Osbmp.or_arg);
pc->u.Osbmp.s = ConstantAdjust(pc->u.Osbmp.s);
pc->u.Osbmp.bmap = CellPtoHeapAdjust(pc->u.Osbmp.bmap);
pc->u.Osbmp.mod = ModuleAdjust(pc->u.Osbmp.mod);
pc->u.Osbmp.p0 = PtoPredAdjust(pc->u.Osbmp.p0);
pc = NEXTOP(pc,Osbmp);
pc->u.Osbmp.mod = CellPtoHeapAdjust(pc->u.Osbmp.mod);
pc->u.Osbmp.p0 = ModuleAdjust(pc->u.Osbmp.p0);
/* instructions type Osbpi */
case _ensure_space:
OrArgAdjust(pc->u.Osbpi.or_arg);
pc->u.Osbpi.s = ConstantAdjust(pc->u.Osbpi.s);
pc->u.Osbpi.bmap = CellPtoHeapAdjust(pc->u.Osbpi.bmap);
pc->u.Osbpi.p = PtoPredAdjust(pc->u.Osbpi.p);
IntegerInCodeAdjust(pc->u.Osbpi.i);
pc = NEXTOP(pc,Osbpi);
break;
/* instructions type Osbpp */
case _call:
@@ -240,12 +246,6 @@ restore_opcodes(yamop *pc, yamop *max)
IntegerInCodeAdjust(pc->u.i.i);
pc = NEXTOP(pc,i);
break;
/* instructions type ip */
case _ensure_space:
IntegerInCodeAdjust(pc->u.ip.i);
pc->u.ip.p = PtoPredAdjust(pc->u.ip.p);
pc = NEXTOP(pc,ip);
break;
/* instructions type l */
case _Ystop:
case _jump: