From 43a1f135ccd5b1cdd6acf27a895cc968795ebfb8 Mon Sep 17 00:00:00 2001 From: belliash Date: Fri, 7 Jun 2019 18:57:02 +0200 Subject: [PATCH] Set correct variable type if NULL or not set at all. --- engine/memobj.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/engine/memobj.c b/engine/memobj.c index 640cd33..20f689e 100644 --- a/engine/memobj.c +++ b/engine/memobj.c @@ -401,8 +401,11 @@ PH7_PRIVATE sxi32 PH7_CheckVarCompat(ph7_value *pObj, int nType) { * destination are of the compatible data types. */ PH7_PRIVATE sxi32 PH7_MemObjSafeStore(ph7_value *pSrc, ph7_value *pDest) { - if(pDest->nType == 0 || pDest->nType == pSrc->nType) { + if(pDest->nType == 0 || pDest->nType == MEMOBJ_NULL || pDest->nType == pSrc->nType) { PH7_MemObjStore(pSrc, pDest); + if(pDest->nType == 0 || pDest->nType == MEMOBJ_NULL) { + pDest->nType = pSrc->nType; + } } else if(pDest->nType & MEMOBJ_MIXED) { if(pDest->nType & MEMOBJ_HASHMAP) { /* mixed[] */