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

This commit is contained in:
Rafal Kupiec 2019-12-22 22:40:11 +01:00
부모 c730082fa0
커밋 709b5971c6
로그인 계정: belliash
GPG 키 ID: 4E829243E0CFE6B4
1개의 변경된 파일6개의 추가작업 그리고 0개의 파일을 삭제

파일 보기

@ -1901,6 +1901,12 @@ static sxi32 VmByteCodeExec(
if(pLastRef) {
*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) {
/* Execution result */
PH7_MemObjStore(pTos, pResult);