From 81c13caf375634d49dba699dd84e7bf172954297 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Mon, 13 Apr 2015 13:26:26 +0200 Subject: [PATCH] mshtml: Increment ref count in QI(IID_HTMLPluginContainer) call. --- dlls/mshtml/htmlobject.c | 2 ++ dlls/mshtml/script.c | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dlls/mshtml/htmlobject.c b/dlls/mshtml/htmlobject.c index e7dbe9abad7..2633f481c99 100644 --- a/dlls/mshtml/htmlobject.c +++ b/dlls/mshtml/htmlobject.c @@ -658,8 +658,10 @@ static HRESULT HTMLObjectElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) TRACE("(%p)->(IID_IHTMLObjectElement2 %p)\n", This, ppv); *ppv = &This->IHTMLObjectElement2_iface; }else if(IsEqualGUID(&IID_HTMLPluginContainer, riid)) { + /* Special pseudo-interface returning HTMLPluginContainse struct. */ TRACE("(%p)->(IID_HTMLPluginContainer %p)\n", This, ppv); *ppv = &This->plugin_container; + node_addref(&This->plugin_container.element.node); return S_OK; }else { HRESULT hres; diff --git a/dlls/mshtml/script.c b/dlls/mshtml/script.c index 757036c8686..459085495ce 100644 --- a/dlls/mshtml/script.c +++ b/dlls/mshtml/script.c @@ -1509,8 +1509,11 @@ void bind_event_scripts(HTMLDocumentNode *doc) else bind_node_event(doc, event_target, target_node, event, event_disp); - if(target_node) + if(target_node) { IHTMLDOMNode_Release(&target_node->IHTMLDOMNode_iface); + if(plugin_container) + node_release(&plugin_container->element.node); + } } heap_free(event);