From 59fda6d797c6caf06e6bd462c73eaf45df1a3130 Mon Sep 17 00:00:00 2001 From: belliash Date: Mon, 24 Sep 2018 11:29:51 +0200 Subject: [PATCH] Unref hashmap and object only if there is any data stored. --- engine/memobj.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/engine/memobj.c b/engine/memobj.c index 94b65dd..52186c6 100644 --- a/engine/memobj.c +++ b/engine/memobj.c @@ -814,10 +814,12 @@ PH7_PRIVATE sxi32 PH7_MemObjLoad(ph7_value *pSrc, ph7_value *pDest) { */ PH7_PRIVATE sxi32 PH7_MemObjRelease(ph7_value *pObj) { if((pObj->iFlags & MEMOBJ_NULL) == 0) { - if(pObj->iFlags & MEMOBJ_HASHMAP) { - PH7_HashmapUnref((ph7_hashmap *)pObj->x.pOther); - } else if(pObj->iFlags & MEMOBJ_OBJ) { - PH7_ClassInstanceUnref((ph7_class_instance *)pObj->x.pOther); + if(pObj->x.pOther) { + if(pObj->iFlags & MEMOBJ_HASHMAP) { + PH7_HashmapUnref((ph7_hashmap *)pObj->x.pOther); + } else if(pObj->iFlags & MEMOBJ_OBJ) { + PH7_ClassInstanceUnref((ph7_class_instance *)pObj->x.pOther); + } } /* Release the internal buffer */ SyBlobRelease(&pObj->sBlob);