Jacek Caban : shdocvw: Properly handle IEDocHost refcount.
Alexandre Julliard
julliard at winehq.org
Tue Apr 19 12:08:17 CDT 2011
Module: wine
Branch: master
Commit: ef9bb15192a9b3919bc23e68842306abb7835121
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ef9bb15192a9b3919bc23e68842306abb7835121
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Apr 19 10:35:11 2011 +0200
shdocvw: Properly handle IEDocHost refcount.
---
dlls/shdocvw/ie.c | 4 +++-
dlls/shdocvw/iexplore.c | 3 ++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/shdocvw/ie.c b/dlls/shdocvw/ie.c
index 491f025..757cbb5 100644
--- a/dlls/shdocvw/ie.c
+++ b/dlls/shdocvw/ie.c
@@ -81,8 +81,10 @@ static ULONG WINAPI InternetExplorer_Release(IWebBrowser2 *iface)
if(!ref) {
if(This->doc_host) {
DocHost_Release(&This->doc_host->doc_host);
- if(This->doc_host)
+ if(This->doc_host) {
This->doc_host->ie = NULL;
+ This->doc_host->doc_host.container_vtbl->release(&This->doc_host->doc_host);
+ }
}
if(This->frame_hwnd)
diff --git a/dlls/shdocvw/iexplore.c b/dlls/shdocvw/iexplore.c
index aebe7c9..f079e62 100644
--- a/dlls/shdocvw/iexplore.c
+++ b/dlls/shdocvw/iexplore.c
@@ -718,7 +718,7 @@ static ULONG IEDocHost_release(DocHost *iface)
if(!ref) {
if(This->ie)
- This->ie->doc_host = NULL;
+ ERR("This->ie is not NULL\n");
heap_free(This);
}
@@ -777,6 +777,7 @@ static HRESULT create_ie(InternetExplorer **ret_obj)
}
ret->ref = 1;
+ ret->doc_host->ref = 1;
ret->doc_host->ie = ret;
DocHost_Init(&ret->doc_host->doc_host, (IDispatch*)&ret->IWebBrowser2_iface, &DocHostContainerVtbl);
More information about the wine-cvs
mailing list