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