Execute the 'finally' block when to exception has been thrown.
The build was successful.
Details
The build was successful.
Details
This commit is contained in:
parent
384b057c93
commit
4267bb2f26
10
engine/vm.c
10
engine/vm.c
|
@ -3909,7 +3909,15 @@ static sxi32 VmByteCodeExec(
|
||||||
ph7_exception **apException;
|
ph7_exception **apException;
|
||||||
/* Pop the loaded exception */
|
/* Pop the loaded exception */
|
||||||
apException = (ph7_exception **)SySetBasePtr(&pVm->aException);
|
apException = (ph7_exception **)SySetBasePtr(&pVm->aException);
|
||||||
if(pException == apException[SySetUsed(&pVm->aException) - 1]) {
|
if(pException && pException == apException[SySetUsed(&pVm->aException) - 1]) {
|
||||||
|
if(SySetUsed(&pException->sFinally)) {
|
||||||
|
/* Execute the 'finally' block */
|
||||||
|
rc = VmExecFinallyBlock(&(*pVm), pException);
|
||||||
|
if(rc == SXERR_ABORT) {
|
||||||
|
/* Abort processing immediately */
|
||||||
|
goto Abort;
|
||||||
|
}
|
||||||
|
}
|
||||||
(void)SySetPop(&pVm->aException);
|
(void)SySetPop(&pVm->aException);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue