From 119b0bb77d5bb0d85290127d5899648be798e9fc Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Thu, 27 Jun 2024 19:54:33 +0200 Subject: [PATCH] jscript: Introduce to_jsdispex. --- dlls/jscript/array.c | 2 +- dlls/jscript/dispex.c | 2 +- dlls/jscript/jscript.h | 5 +++++ dlls/jscript/json.c | 4 ++-- dlls/jscript/object.c | 2 +- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/dlls/jscript/array.c b/dlls/jscript/array.c index a8e2934b78d..9f9231c8b5f 100644 --- a/dlls/jscript/array.c +++ b/dlls/jscript/array.c @@ -1560,7 +1560,7 @@ static HRESULT Array_unshift(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsig hres = jsdisp_propput_idx(jsthis, i+argc, val); jsval_release(val); }else if(hres == DISP_E_UNKNOWNNAME) { - hres = IDispatchEx_DeleteMemberByDispID(&jsthis->IDispatchEx_iface, id); + hres = IDispatchEx_DeleteMemberByDispID(to_dispex(jsthis), id); } } diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c index e8bd0be64b4..efefbb116b9 100644 --- a/dlls/jscript/dispex.c +++ b/dlls/jscript/dispex.c @@ -1893,7 +1893,7 @@ static HRESULT WINAPI DispatchEx_Invoke(IDispatchEx *iface, DISPID dispIdMember, TRACE("(%p)->(%ld %s %ld %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - return IDispatchEx_InvokeEx(&This->IDispatchEx_iface, dispIdMember, lcid, wFlags, + return IDispatchEx_InvokeEx(to_dispex(This), dispIdMember, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, NULL); } diff --git a/dlls/jscript/jscript.h b/dlls/jscript/jscript.h index 1a9446893a1..80641731006 100644 --- a/dlls/jscript/jscript.h +++ b/dlls/jscript/jscript.h @@ -216,6 +216,11 @@ static inline IDispatch *to_disp(jsdisp_t *jsdisp) return (IDispatch*)&jsdisp->IDispatchEx_iface; } +static inline IDispatchEx *to_dispex(jsdisp_t *jsdisp) +{ + return &jsdisp->IDispatchEx_iface; +} + jsdisp_t *as_jsdisp(IDispatch*); jsdisp_t *to_jsdisp(IDispatch*); void jsdisp_free(jsdisp_t*); diff --git a/dlls/jscript/json.c b/dlls/jscript/json.c index ee0fe87827c..b56d75d3570 100644 --- a/dlls/jscript/json.c +++ b/dlls/jscript/json.c @@ -671,7 +671,7 @@ static HRESULT stringify_object(stringify_ctx_t *ctx, jsdisp_t *obj) if(!append_char(ctx, '{')) return E_OUTOFMEMORY; - while((hres = IDispatchEx_GetNextDispID(&obj->IDispatchEx_iface, fdexEnumDefault, dispid, &dispid)) == S_OK) { + while((hres = IDispatchEx_GetNextDispID(to_dispex(obj), fdexEnumDefault, dispid, &dispid)) == S_OK) { stepback = ctx->buf_len; if(prop_cnt && !append_char(ctx, ',')) { @@ -693,7 +693,7 @@ static HRESULT stringify_object(stringify_ctx_t *ctx, jsdisp_t *obj) } } - hres = IDispatchEx_GetMemberName(&obj->IDispatchEx_iface, dispid, &prop_name); + hres = IDispatchEx_GetMemberName(to_dispex(obj), dispid, &prop_name); if(FAILED(hres)) return hres; diff --git a/dlls/jscript/object.c b/dlls/jscript/object.c index f25287b7a15..d62acfa178a 100644 --- a/dlls/jscript/object.c +++ b/dlls/jscript/object.c @@ -655,7 +655,7 @@ static HRESULT jsdisp_define_properties(script_ctx_t *ctx, jsdisp_t *obj, jsval_ if(FAILED(hres)) break; - hres = IDispatchEx_GetMemberName(&list_obj->IDispatchEx_iface, id, &name); + hres = IDispatchEx_GetMemberName(to_dispex(list_obj), id, &name); if(SUCCEEDED(hres)) hres = jsdisp_define_property(obj, name, &prop_desc); release_property_descriptor(&prop_desc);