From 9303517b9e30cacdaa9138d9cd8ad8f2689057e1 Mon Sep 17 00:00:00 2001 From: belliash Date: Tue, 26 Mar 2019 17:40:28 +0100 Subject: [PATCH] Fix return by reference. --- engine/vm.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/engine/vm.c b/engine/vm.c index 2decfdc..d613a85 100644 --- a/engine/vm.c +++ b/engine/vm.c @@ -5145,21 +5145,10 @@ static sxi32 VmByteCodeExec( for(i = 0 ; i < SySetUsed(&pFrame->sLocal) ; ++i) { if(n == aSlot[i].nIdx) { pObj = (ph7_value *)SySetAt(&pVm->aMemObj, n); - if(pObj && (pObj->iFlags & (MEMOBJ_NULL | MEMOBJ_OBJ | MEMOBJ_HASHMAP | MEMOBJ_RES)) == 0) { - PH7_VmThrowError(&(*pVm), PH7_CTX_NOTICE, - "Function '%z',return by reference: Cannot reference local variable, PH7 is switching to return by value", - &pVmFunc->sName); - } n = SXU32_HIGH; break; } } - } else { - if((pTos->iFlags & (MEMOBJ_HASHMAP | MEMOBJ_OBJ | MEMOBJ_NULL | MEMOBJ_RES)) == 0) { - PH7_VmThrowError(&(*pVm), PH7_CTX_NOTICE, - "Function '%z', return by reference: Cannot reference constant expression, PH7 is switching to return by value", - &pVmFunc->sName); - } } pTos->nIdx = n; }