Module: wine Branch: master Commit: 7abe09518762db954ebe643ec6da33a600fdfbb7 URL: https://gitlab.winehq.org/wine/wine/-/commit/7abe09518762db954ebe643ec6da33a... Author: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> Date: Tue Sep 19 17:26:14 2023 +0300 mshtml: Use the dispex's query_interface for DOMTextNodes. Signed-off-by: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> --- dlls/mshtml/htmltextnode.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/dlls/mshtml/htmltextnode.c b/dlls/mshtml/htmltextnode.c index 2bebe9dee1b..cdbc708a896 100644 --- a/dlls/mshtml/htmltextnode.c +++ b/dlls/mshtml/htmltextnode.c @@ -331,9 +331,14 @@ static HRESULT HTMLDOMTextNode_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, HTM return HTMLDOMTextNode_Create(This->node.doc, nsnode, ret); } -static void *HTMLDOMTextNode_QI(HTMLDOMNode *iface, REFIID riid) +static inline HTMLDOMTextNode *impl_from_DispatchEx(DispatchEx *iface) { - HTMLDOMTextNode *This = impl_from_HTMLDOMNode(iface); + return CONTAINING_RECORD(iface, HTMLDOMTextNode, node.event_target.dispex); +} + +static void *HTMLDOMTextNode_query_interface(DispatchEx *dispex, REFIID riid) +{ + HTMLDOMTextNode *This = impl_from_DispatchEx(dispex); if(IsEqualGUID(&IID_IHTMLDOMTextNode, riid)) return &This->IHTMLDOMTextNode_iface; @@ -346,13 +351,12 @@ static void *HTMLDOMTextNode_QI(HTMLDOMNode *iface, REFIID riid) static const cpc_entry_t HTMLDOMTextNode_cpc[] = {{NULL}}; static const NodeImplVtbl HTMLDOMTextNodeImplVtbl = { - .qi = HTMLDOMTextNode_QI, .cpc_entries = HTMLDOMTextNode_cpc, .clone = HTMLDOMTextNode_clone }; static const dispex_static_data_vtbl_t HTMLDOMTextNode_dispex_vtbl = { - .query_interface = HTMLDOMNode_query_interface, + .query_interface = HTMLDOMTextNode_query_interface, .destructor = HTMLDOMNode_destructor, .traverse = HTMLDOMNode_traverse, .unlink = HTMLDOMNode_unlink