Execute the 'finally' block when to exception has been thrown.
Все проверки выполнены успешно
The build was successful.

Этот коммит содержится в:
Rafal Kupiec 2019-06-05 07:55:52 +02:00
родитель 384b057c93
Коммит 4267bb2f26
Подписано: belliash
Идентификатор ключа GPG: 4E829243E0CFE6B4

Просмотреть файл

@ -3909,7 +3909,15 @@ static sxi32 VmByteCodeExec(
ph7_exception **apException;
/* Pop the loaded exception */
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);
}
}