Jacek Caban : ieframe: Keep reference to ShellObject while calling DocumentComplete event.
Module: wine Branch: master Commit: 3a1ce6a864acfe3e0143b1c1bea663be15d6ddeb URL: http://source.winehq.org/git/wine.git/?a=commit;h=3a1ce6a864acfe3e0143b1c1be... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed May 15 12:52:41 2013 +0200 ieframe: Keep reference to ShellObject while calling DocumentComplete event. --- dlls/ieframe/shellbrowser.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/dlls/ieframe/shellbrowser.c b/dlls/ieframe/shellbrowser.c index 944c7bc..55763db 100644 --- a/dlls/ieframe/shellbrowser.c +++ b/dlls/ieframe/shellbrowser.c @@ -824,12 +824,18 @@ static HRESULT WINAPI DocObjectService_FireDocumentComplete( V_VT(&url_var) = VT_BSTR; V_BSTR(&url_var) = url; + /* Keep reference to This. It may be released in event handler. */ + IShellBrowser_AddRef(&This->IShellBrowser_iface); + TRACE(">>>\n"); call_sink(This->doc_host->cps.wbe2, DISPID_DOCUMENTCOMPLETE, &dp); TRACE("<<<\n"); SysFreeString(url); - This->doc_host->busy = VARIANT_FALSE; + if(This->doc_host) + This->doc_host->busy = VARIANT_FALSE; + + IShellBrowser_Release(&This->IShellBrowser_iface); return S_OK; }
participants (1)
-
Alexandre Julliard