Automatically fallback mixed variable to void (NULL).
The build was successful. Details

This commit is contained in:
Rafal Kupiec 2019-03-31 14:04:19 +02:00
parent 629484fcf6
commit 253fe327ef
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
1 changed files with 11 additions and 7 deletions

View File

@ -2431,15 +2431,19 @@ static sxi32 VmByteCodeExec(
PH7_MemObjRelease(pTos); PH7_MemObjRelease(pTos);
} else { } else {
pObj = VmExtractMemObj(&(*pVm), &sName, FALSE, TRUE); pObj = VmExtractMemObj(&(*pVm), &sName, FALSE, TRUE);
if(pInstr->iP2 & MEMOBJ_HASHMAP) { if(pInstr->iP2 & MEMOBJ_MIXED && (pInstr->iP2 & MEMOBJ_HASHMAP) == 0) {
ph7_hashmap *pMap; pObj->iFlags = MEMOBJ_MIXED | MEMOBJ_VOID;
pMap = PH7_NewHashmap(&(*pVm), 0, 0); } else {
if(pMap == 0) { if(pInstr->iP2 & MEMOBJ_HASHMAP) {
PH7_VmMemoryError(&(*pVm)); ph7_hashmap *pMap;
pMap = PH7_NewHashmap(&(*pVm), 0, 0);
if(pMap == 0) {
PH7_VmMemoryError(&(*pVm));
}
pObj->x.pOther = pMap;
} }
pObj->x.pOther = pMap; MemObjSetType(pObj, pInstr->iP2);
} }
MemObjSetType(pObj, pInstr->iP2);
} }
pTos->nIdx = SXU32_HIGH; /* Mark as constant */ pTos->nIdx = SXU32_HIGH; /* Mark as constant */
break; break;