Return can break loop execution as well. If it does, it needs to ensure VM_FRAME_ACTIVE is on top.
The build was successful.
Details
The build was successful.
Details
This commit is contained in:
parent
c730082fa0
commit
709b5971c6
|
@ -1901,6 +1901,12 @@ static sxi32 VmByteCodeExec(
|
||||||
if(pLastRef) {
|
if(pLastRef) {
|
||||||
*pLastRef = pTos->nIdx;
|
*pLastRef = pTos->nIdx;
|
||||||
}
|
}
|
||||||
|
/* Ensure we are in active loop. Force abort all loops */
|
||||||
|
if(pVm->pFrame->iFlags & VM_FRAME_LOOP) {
|
||||||
|
while((pVm->pFrame->iFlags & VM_FRAME_ACTIVE) == 0) {
|
||||||
|
VmLeaveFrame(&(*pVm));
|
||||||
|
}
|
||||||
|
}
|
||||||
if(pResult) {
|
if(pResult) {
|
||||||
/* Execution result */
|
/* Execution result */
|
||||||
PH7_MemObjStore(pTos, pResult);
|
PH7_MemObjStore(pTos, pResult);
|
||||||
|
|
Loading…
Reference in New Issue