Rémi Bernon : dmscript: Always return S_FALSE from DllCanUnloadNow.
Module: wine Branch: master Commit: b02b32f9b7eef9c5ed88ef60886f3b64954b5a47 URL: https://gitlab.winehq.org/wine/wine/-/commit/b02b32f9b7eef9c5ed88ef60886f3b6... Author: Rémi Bernon <rbernon(a)codeweavers.com> Date: Tue Aug 22 17:42:13 2023 +0200 dmscript: Always return S_FALSE from DllCanUnloadNow. --- dlls/dmscript/dmscript_main.c | 22 ---------------------- dlls/dmscript/dmscript_private.h | 7 ------- dlls/dmscript/script.c | 2 -- dlls/dmscript/scripttrack.c | 2 -- 4 files changed, 33 deletions(-) diff --git a/dlls/dmscript/dmscript_main.c b/dlls/dmscript/dmscript_main.c index f6785176aec..db5f163b829 100644 --- a/dlls/dmscript/dmscript_main.c +++ b/dlls/dmscript/dmscript_main.c @@ -38,8 +38,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(dmscript); -LONG DMSCRIPT_refCount = 0; - typedef struct { IClassFactory IClassFactory_iface; HRESULT (*fnCreateInstance)(REFIID riid, void **ppv, IUnknown *pUnkOuter); @@ -82,15 +80,11 @@ static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID r static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface) { - DMSCRIPT_LockModule(); - return 2; /* non-heap based object */ } static ULONG WINAPI ClassFactory_Release(IClassFactory *iface) { - DMSCRIPT_UnlockModule(); - return 1; /* non-heap based object */ } @@ -107,12 +101,6 @@ static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock) { TRACE("(%d)\n", dolock); - - if (dolock) - DMSCRIPT_LockModule(); - else - DMSCRIPT_UnlockModule(); - return S_OK; } @@ -140,16 +128,6 @@ static IClassFactoryImpl ScriptAutoImplAudioPath_CF = {{&classfactory_vtbl}, create_unimpl_instance}; static IClassFactoryImpl ScriptAutoImplSong_CF = {{&classfactory_vtbl}, create_unimpl_instance}; -/****************************************************************** - * DllCanUnloadNow (DMSCRIPT.@) - * - * - */ -HRESULT WINAPI DllCanUnloadNow(void) -{ - return DMSCRIPT_refCount != 0 ? S_FALSE : S_OK; -} - /****************************************************************** * DllGetClassObject (DMSCRIPT.@) diff --git a/dlls/dmscript/dmscript_private.h b/dlls/dmscript/dmscript_private.h index 90808d59f00..f715c083523 100644 --- a/dlls/dmscript/dmscript_private.h +++ b/dlls/dmscript/dmscript_private.h @@ -48,13 +48,6 @@ extern HRESULT DMUSIC_CreateDirectMusicScriptImpl(REFIID riid, void **ppobj, IUn extern HRESULT DMUSIC_CreateDirectMusicScriptTrack(REFIID riid, void **ppobj, IUnknown *pUnkOuter); -/********************************************************************** - * Dll lifetime tracking declaration for dmscript.dll - */ -extern LONG DMSCRIPT_refCount; -static inline void DMSCRIPT_LockModule(void) { InterlockedIncrement( &DMSCRIPT_refCount ); } -static inline void DMSCRIPT_UnlockModule(void) { InterlockedDecrement( &DMSCRIPT_refCount ); } - /***************************************************************************** * Misc. */ diff --git a/dlls/dmscript/script.c b/dlls/dmscript/script.c index 375eebf69aa..dbfcdca7d83 100644 --- a/dlls/dmscript/script.c +++ b/dlls/dmscript/script.c @@ -94,7 +94,6 @@ static ULONG WINAPI IDirectMusicScriptImpl_Release(IDirectMusicScript *iface) HeapFree(GetProcessHeap(), 0, This->pwzLanguage); HeapFree(GetProcessHeap(), 0, This->pwzSource); HeapFree(GetProcessHeap(), 0, This); - DMSCRIPT_UnlockModule(); } return ref; @@ -508,7 +507,6 @@ HRESULT DMUSIC_CreateDirectMusicScriptImpl(REFIID lpcGUID, void **ppobj, IUnknow obj->dmobj.IDirectMusicObject_iface.lpVtbl = &dmobject_vtbl; obj->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl; - DMSCRIPT_LockModule(); hr = IDirectMusicScript_QueryInterface(&obj->IDirectMusicScript_iface, lpcGUID, ppobj); IDirectMusicScript_Release(&obj->IDirectMusicScript_iface); diff --git a/dlls/dmscript/scripttrack.c b/dlls/dmscript/scripttrack.c index fbe454c09e5..92dd6d15ec6 100644 --- a/dlls/dmscript/scripttrack.c +++ b/dlls/dmscript/scripttrack.c @@ -86,7 +86,6 @@ static ULONG WINAPI script_track_Release(IDirectMusicTrack8 *iface) if (!ref) { HeapFree(GetProcessHeap(), 0, This); - DMSCRIPT_UnlockModule(); } return ref; @@ -338,7 +337,6 @@ HRESULT DMUSIC_CreateDirectMusicScriptTrack(REFIID riid, void **ret_iface, IUnkn track->desc.guidClass = CLSID_DirectMusicScriptTrack; track->ref = 1; - DMSCRIPT_LockModule(); hr = IDirectMusicTrack8_QueryInterface(&track->IDirectMusicTrack8_iface, riid, ret_iface); IDirectMusicTrack8_Release(&track->IDirectMusicTrack8_iface);
participants (1)
-
Alexandre Julliard