Jacek Caban : shdocvw: Fix module ref counting.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Feb 20 14:19:11 CST 2007


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Feb 20 17:13:27 2007 +0100

shdocvw: Fix module ref counting.

---

 dlls/shdocvw/factory.c |    1 +
 dlls/shdocvw/urlhist.c |    7 +++++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/dlls/shdocvw/factory.c b/dlls/shdocvw/factory.c
index 71a37aa..58fffcb 100644
--- a/dlls/shdocvw/factory.c
+++ b/dlls/shdocvw/factory.c
@@ -54,6 +54,7 @@ static HRESULT WINAPI WBCF_QueryInterface(LPCLASSFACTORY iface,
 
     if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IClassFactory, riid)) {
         *ppobj = iface;
+        IClassFactory_AddRef(iface);
         return S_OK;
     }
 
diff --git a/dlls/shdocvw/urlhist.c b/dlls/shdocvw/urlhist.c
index 2b2e572..c801718 100644
--- a/dlls/shdocvw/urlhist.c
+++ b/dlls/shdocvw/urlhist.c
@@ -37,9 +37,10 @@ static HRESULT WINAPI UrlHistoryStg_QueryInterface(IUrlHistoryStg2 *iface, REFII
         *ppv = iface;
     }
 
-    if(*ppv)
+    if(*ppv) {
+        IUnknown_AddRef((IUnknown*)*ppv);
         return S_OK;
-
+    }
 
     WARN("(%s %p)\n", debugstr_guid(riid), ppv);
     return E_NOINTERFACE;
@@ -47,11 +48,13 @@ static HRESULT WINAPI UrlHistoryStg_QueryInterface(IUrlHistoryStg2 *iface, REFII
 
 static ULONG WINAPI UrlHistoryStg_AddRef(IUrlHistoryStg2 *iface)
 {
+    SHDOCVW_LockModule();
     return 2;
 }
 
 static ULONG WINAPI UrlHistoryStg_Release(IUrlHistoryStg2 *iface)
 {
+    SHDOCVW_UnlockModule();
     return 1;
 }
 




More information about the wine-cvs mailing list