Jacek Caban : ieframe: Keep reference to ShellObject while calling DocumentComplete event.

Alexandre Julliard julliard at winehq.org
Wed May 15 14:20:00 CDT 2013


Module: wine
Branch: master
Commit: 3a1ce6a864acfe3e0143b1c1bea663be15d6ddeb
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=3a1ce6a864acfe3e0143b1c1bea663be15d6ddeb

Author: Jacek Caban <jacek at 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;
 }
 




More information about the wine-cvs mailing list