diff --git a/engine/vm.c b/engine/vm.c index 8e04c1f..4257924 100644 --- a/engine/vm.c +++ b/engine/vm.c @@ -4336,6 +4336,9 @@ static sxi32 VmByteCodeExec( } else if((pMeth->iFlags & PH7_CLASS_ATTR_STATIC) == 0) { PH7_VmThrowError(&(*pVm), PH7_CTX_ERR, "Attempt to call statically a non-static method '%z::%z()'", &pClass->sName, &sName); + } else if(!VmClassMemberAccess(&(*pVm), pClass, pMeth->iProtection)) { + PH7_VmThrowError(&(*pVm), PH7_CTX_ERR, "Method '%z::%z()' is inaccessible due to its protection level", + &pClass->sName, &sName); } else { /* Push method name on the stack */ PH7_MemObjRelease(pTos);