From f3d10dd4bcd2e9a799359a88c4d247a9d3a554ac Mon Sep 17 00:00:00 2001 From: belliash Date: Sun, 17 Mar 2019 18:49:22 +0100 Subject: [PATCH] Try to exit with code returned by Program::main() only when it is integer value. --- engine/vm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/engine/vm.c b/engine/vm.c index 3d58229..ee9c7be 100644 --- a/engine/vm.c +++ b/engine/vm.c @@ -5506,7 +5506,10 @@ PH7_PRIVATE sxi32 PH7_VmByteCodeExec(ph7_vm *pVm) { /* Call entry point */ PH7_VmCallClassMethod(&(*pVm), pInstance, pMethod, &pResult, 1, &pArgs); if(!pVm->iExitStatus) { - pVm->iExitStatus = ph7_value_to_int(&pResult); + if(pMethod->sFunc.nType == MEMOBJ_INT) { + pVm->iExitStatus = ph7_value_to_int(&pResult); + } else { + pVm->iExitStatus = 0; } /* Invoke any shutdown callbacks */ VmInvokeShutdownCallbacks(&(*pVm));