Jacek Caban : jscript: Check if PROP_DELETED is actually an external property in find_prop_name.
Module: wine Branch: master Commit: 4d244858338d04e5e4af837a0ca46d23db188838 URL: https://gitlab.winehq.org/wine/wine/-/commit/4d244858338d04e5e4af837a0ca46d2... Author: Jacek Caban <jacek(a)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)
participants (1)
-
Alexandre Julliard