From d74b1822358263209bfb68cfb7a8adc33fc3698c Mon Sep 17 00:00:00 2001 From: belliash Date: Mon, 8 Apr 2019 13:32:50 +0200 Subject: [PATCH] Properly typecast callback to boolean. --- engine/memobj.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/engine/memobj.c b/engine/memobj.c index 1f03913..400bb78 100644 --- a/engine/memobj.c +++ b/engine/memobj.c @@ -307,7 +307,17 @@ static sxi32 MemObjBooleanValue(ph7_value *pObj) { } return zIn >= zEnd ? 0 : 1; } - } else if(iFlags & (MEMOBJ_CALL | MEMOBJ_NULL | MEMOBJ_VOID)) { + } else if(iFlags & MEMOBJ_CALL) { + SyString sString; + SyStringInitFromBuf(&sString, SyBlobData(&pObj->sBlob), SyBlobLength(&pObj->sBlob)); + if(sString.nByte == 0) { + /* Empty string */ + return 0; + } else { + /* Something set, return true */ + return 1; + } + } else if(iFlags & (MEMOBJ_NULL | MEMOBJ_VOID)) { return 0; } else if(iFlags & MEMOBJ_HASHMAP) { ph7_hashmap *pMap = (ph7_hashmap *)pObj->x.pOther;