From 5d369ba85152d7cea9124faba7d45ebd440aacbe Mon Sep 17 00:00:00 2001 From: belliash Date: Thu, 4 Apr 2019 18:18:11 +0200 Subject: [PATCH] Fix static variables. Now access to non-initialized arrays member does not result in segmentation fault. --- engine/vm.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/engine/vm.c b/engine/vm.c index b870944..a173791 100644 --- a/engine/vm.c +++ b/engine/vm.c @@ -4858,6 +4858,13 @@ static sxi32 VmByteCodeExec( if(rc != SXRET_OK) { PH7_VmThrowError(&(*pVm), PH7_CTX_ERR, "Cannot assign a value of incompatible type to variable '$%z'", &pStatic->sName); } + } else if(pObj->iFlags & MEMOBJ_HASHMAP) { + ph7_hashmap *pMap; + pMap = PH7_NewHashmap(&(*pVm), 0, 0); + if(pMap == 0) { + PH7_VmMemoryError(&(*pVm)); + } + pObj->x.pOther = pMap; } pObj->nIdx = pStatic->nIdx; }