Jacek Caban : itss: DllCanUnloadNow code clean up.

Alexandre Julliard julliard at wine.codeweavers.com
Sun Dec 24 09:38:00 CST 2006


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sat Dec 23 23:51:55 2006 +0100

itss: DllCanUnloadNow code clean up.

---

 dlls/itss/itss.c    |   12 ++++++------
 dlls/itss/itsstor.h |    5 +++++
 dlls/itss/moniker.c |   10 ++++------
 dlls/itss/storage.c |   17 ++++++++---------
 4 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/dlls/itss/itss.c b/dlls/itss/itss.c
index 742465d..683b02e 100644
--- a/dlls/itss/itss.c
+++ b/dlls/itss/itss.c
@@ -93,13 +93,13 @@ ITSSCF_QueryInterface(LPCLASSFACTORY ifa
 
 static ULONG WINAPI ITSSCF_AddRef(LPCLASSFACTORY iface)
 {
-    InterlockedIncrement(&dll_count);
+    ITSS_LockModule();
     return 2;
 }
 
 static ULONG WINAPI ITSSCF_Release(LPCLASSFACTORY iface)
 {
-    InterlockedDecrement(&dll_count);
+    ITSS_UnlockModule();
     return 1;
 }
 
@@ -127,9 +127,9 @@ static HRESULT WINAPI ITSSCF_LockServer(
     TRACE("(%p)->(%d)\n", iface, dolock);
 
     if (dolock)
-        InterlockedIncrement(&dll_count);
+        ITSS_LockModule();
     else
-        InterlockedDecrement(&dll_count);
+        ITSS_UnlockModule();
 
     return S_OK;
 }
@@ -210,7 +210,7 @@ static ULONG WINAPI ITStorageImpl_Releas
 
     if (ref == 0) {
         HeapFree(GetProcessHeap(), 0, This);
-        InterlockedDecrement(&dll_count);
+        ITSS_UnlockModule();
     }
 
     return ref;
@@ -364,8 +364,8 @@ static HRESULT ITSS_create(IUnknown *pUn
 
     TRACE("-> %p\n", its);
     *ppObj = (LPVOID) its;
-    InterlockedIncrement(&dll_count);
 
+    ITSS_LockModule();
     return S_OK;
 }
 
diff --git a/dlls/itss/itsstor.h b/dlls/itss/itsstor.h
index af9fec4..736dd88 100644
--- a/dlls/itss/itsstor.h
+++ b/dlls/itss/itsstor.h
@@ -35,4 +35,9 @@ extern HRESULT ITS_IParseDisplayName_cre
     IUnknown *pUnkOuter,
     LPVOID *ppObj);
 
+extern LONG dll_count;
+static inline void ITSS_LockModule(void) { InterlockedIncrement(&dll_count); }
+static inline void ITSS_UnlockModule(void) { InterlockedDecrement(&dll_count); }
+
+
 #endif /* __WINE_ITS_STORAGE_PRIVATE__ */
diff --git a/dlls/itss/moniker.c b/dlls/itss/moniker.c
index 1a9401c..5149a14 100644
--- a/dlls/itss/moniker.c
+++ b/dlls/itss/moniker.c
@@ -44,8 +44,6 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(itss);
 
-extern LONG dll_count;
-
 /*****************************************************************************/
 
 typedef struct {
@@ -91,7 +89,7 @@ static ULONG WINAPI ITS_IMonikerImpl_Rel
 
     if (ref == 0) {
         HeapFree(GetProcessHeap(), 0, This);
-        InterlockedDecrement(&dll_count);
+        ITSS_UnlockModule();
     }
 
     return ref;
@@ -369,8 +367,8 @@ static HRESULT ITS_IMoniker_create( IMon
     TRACE("-> %p %s %s\n", itsmon,
           debugstr_w(itsmon->szFile), debugstr_w(itsmon->szHtml) );
     *ppObj = (IMoniker*) itsmon;
-    InterlockedIncrement(&dll_count);
 
+    ITSS_LockModule();
     return S_OK;
 }
 
@@ -416,7 +414,7 @@ static ULONG WINAPI ITS_IParseDisplayNam
 
     if (ref == 0) {
         HeapFree(GetProcessHeap(), 0, This);
-        InterlockedDecrement(&dll_count);
+        ITSS_UnlockModule();
     }
 
     return ref;
@@ -480,7 +478,7 @@ HRESULT ITS_IParseDisplayName_create(IUn
 
     TRACE("-> %p\n", its);
     *ppObj = (LPVOID) its;
-    InterlockedIncrement(&dll_count);
 
+    ITSS_LockModule();
     return S_OK;
 }
diff --git a/dlls/itss/storage.c b/dlls/itss/storage.c
index 1275808..d2e346c 100644
--- a/dlls/itss/storage.c
+++ b/dlls/itss/storage.c
@@ -45,8 +45,6 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(itss);
 
-extern LONG dll_count;
-
 /************************************************************************/
 
 typedef struct _ITSS_IStorageImpl
@@ -128,7 +126,7 @@ static ULONG WINAPI ITSS_IEnumSTATSTG_Re
             This->first = t;
         }
         HeapFree(GetProcessHeap(), 0, This);
-        InterlockedDecrement(&dll_count);
+        ITSS_UnlockModule();
     }
 
     return ref;
@@ -254,8 +252,8 @@ static IEnumSTATSTG_Impl *ITSS_create_en
     stgenum->first = NULL;
     stgenum->last = NULL;
     stgenum->current = NULL;
-    InterlockedIncrement(&dll_count);
 
+    ITSS_LockModule();
     TRACE(" -> %p\n", stgenum );
 
     return stgenum;
@@ -299,7 +297,7 @@ static ULONG WINAPI ITSS_IStorageImpl_Re
     if (ref == 0)
     {
         HeapFree(GetProcessHeap(), 0, This);
-        InterlockedDecrement(&dll_count);
+        ITSS_UnlockModule();
     }
 
     return ref;
@@ -574,8 +572,8 @@ static HRESULT ITSS_create_chm_storage(
     strcpyW( stg->dir, dir );
 
     *ppstgOpen = (IStorage*) stg;
-    InterlockedIncrement(&dll_count);
 
+    ITSS_LockModule();
     return S_OK;
 }
 
@@ -638,8 +636,8 @@ static ULONG WINAPI ITSS_IStream_Release
     if (ref == 0)
     {
         IStorage_Release( (IStorage*) This->stg );
-	HeapFree(GetProcessHeap(), 0, This);
-        InterlockedDecrement(&dll_count);
+        HeapFree(GetProcessHeap(), 0, This);
+        ITSS_UnlockModule();
     }
 
     return ref;
@@ -825,7 +823,8 @@ static IStream_Impl *ITSS_create_stream(
     memcpy( &stm->ui, ui, sizeof stm->ui );
     stm->stg = stg;
     IStorage_AddRef( (IStorage*) stg );
-    InterlockedIncrement(&dll_count);
+
+    ITSS_LockModule();
 
     TRACE(" -> %p\n", stm );
 




More information about the wine-cvs mailing list