Automatically fallback mixed variable to void (NULL).
The build was successful.
Details
The build was successful.
Details
This commit is contained in:
parent
629484fcf6
commit
253fe327ef
18
engine/vm.c
18
engine/vm.c
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue