Module: wine Branch: master Commit: 4d244858338d04e5e4af837a0ca46d23db188838 URL: https://gitlab.winehq.org/wine/wine/-/commit/4d244858338d04e5e4af837a0ca46d2...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Jul 16 00:14:47 2024 +0200
jscript: Check if PROP_DELETED is actually an external property in find_prop_name.
---
dlls/jscript/dispex.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c index 517859433f2..79aea60de9c 100644 --- a/dlls/jscript/dispex.c +++ b/dlls/jscript/dispex.c @@ -325,13 +325,12 @@ static HRESULT find_prop_name(jsdisp_t *This, unsigned hash, const WCHAR *name, HRESULT hres;
prop = lookup_dispex_prop(This, hash, name, case_insens); - if(prop) { + if(prop && prop->type != PROP_DELETED) { *ret = prop; return S_OK; }
- builtin = find_builtin_prop(This, name, case_insens); - if(builtin) { + if(!prop && (builtin = find_builtin_prop(This, name, case_insens))) { unsigned flags = builtin->flags; if(flags & PROPF_METHOD) { jsdisp_t *obj; @@ -362,7 +361,10 @@ static HRESULT find_prop_name(jsdisp_t *This, unsigned hash, const WCHAR *name, return S_OK; }
- return find_external_prop(This, name, case_insens, ret); + hres = find_external_prop(This, name, case_insens, ret); + if(hres == S_OK && !*ret) + *ret = prop; + return hres; }
static HRESULT find_prop_name_prot(jsdisp_t *This, unsigned hash, const WCHAR *name, BOOL case_insens, dispex_prop_t **ret)