[PATCH 13/16] [WinMM]: simply use kernel32.{Release|Restore}ThunkLock instead of using 16bit convolutions

Eric Pouech eric.pouech at orange.fr
Thu Oct 22 15:11:01 CDT 2009




A+
---

 0 files changed, 0 insertions(+), 0 deletions(-)


diff --git a/dlls/winmm/mmsystem.c b/dlls/winmm/mmsystem.c
index daf78d0..ce26192 100644
--- a/dlls/winmm/mmsystem.c
+++ b/dlls/winmm/mmsystem.c
@@ -90,16 +90,12 @@ BOOL WINAPI MMSYSTEM_LibMain(DWORD fdwReason, HINSTANCE hinstDLL, WORD ds,
         pFnOpenDriver16     = DRIVER_OpenDriver16;
         pFnCloseDriver16    = DRIVER_CloseDriver16;
         pFnSendMessage16    = DRIVER_SendMessage16;
-        pFnReleaseThunkLock = ReleaseThunkLock;
-        pFnRestoreThunkLock = RestoreThunkLock;
         MMDRV_Init16();
 	break;
     case DLL_PROCESS_DETACH:
         pFnOpenDriver16     = NULL;
         pFnCloseDriver16    = NULL;
         pFnSendMessage16    = NULL;
-        pFnReleaseThunkLock = NULL;
-        pFnRestoreThunkLock = NULL;
         /* FIXME: add equivalent for MMDRV_Init16() */
 	break;
     case DLL_THREAD_ATTACH:
diff --git a/dlls/winmm/winemm.h b/dlls/winmm/winemm.h
index a06daf2..4eabe70 100644
--- a/dlls/winmm/winemm.h
+++ b/dlls/winmm/winemm.h
@@ -201,8 +201,6 @@ extern  WINMM_MapType   (*pFnMciMapMsg32WTo16)(WORD,WORD,DWORD,DWORD_PTR*);
 extern  WINMM_MapType   (*pFnMciUnMapMsg32WTo16)(WORD,WORD,DWORD,DWORD_PTR);
 extern  LRESULT         (*pFnCallMMDrvFunc16)(DWORD /* in fact FARPROC16 */,WORD,WORD,LONG,LONG,LONG);
 extern  unsigned        (*pFnLoadMMDrvFunc16)(LPCSTR,LPWINE_DRIVER, LPWINE_MM_DRIVER);
-extern  void            (WINAPI *pFnReleaseThunkLock)(DWORD*);
-extern  void            (WINAPI *pFnRestoreThunkLock)(DWORD);
 
 /* GetDriverFlags() returned bits is not documented (nor the call itself)
  * Here are Wine only definitions of the bits
diff --git a/dlls/winmm/winmm.c b/dlls/winmm/winmm.c
index 7855bc3..677bfa3 100644
--- a/dlls/winmm/winmm.c
+++ b/dlls/winmm/winmm.c
@@ -57,9 +57,6 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(winmm);
 
-void    (WINAPI *pFnReleaseThunkLock)(DWORD*);
-void    (WINAPI *pFnRestoreThunkLock)(DWORD);
-
 /* ========================================================================
  *                   G L O B A L   S E T T I N G S
  * ========================================================================*/
@@ -1748,9 +1745,9 @@ static	BOOL MMSYSTEM_MidiStream_PostMessage(WINE_MIDIStream* lpMidiStrm, WORD ms
     if (PostThreadMessageA(lpMidiStrm->dwThreadID, msg, pmt1, pmt2)) {
 	DWORD	count;
 
-	if (pFnReleaseThunkLock) pFnReleaseThunkLock(&count);
+	ReleaseThunkLock(&count);
 	WaitForSingleObject(lpMidiStrm->hEvent, INFINITE);
-	if (pFnRestoreThunkLock) pFnRestoreThunkLock(count);
+	RestoreThunkLock(count);
     } else {
 	WARN("bad PostThreadMessageA\n");
 	return FALSE;
@@ -1836,9 +1833,9 @@ MMRESULT WINAPI midiStreamOpen(HMIDISTRM* lphMidiStrm, LPUINT lpuDeviceID,
 	 * (meaning the Win16Lock is set), so that it's released and the 32 bit thread running
 	 * MMSYSTEM_MidiStreamPlayer can acquire Win16Lock to create its queue.
 	 */
-	if (pFnReleaseThunkLock) pFnReleaseThunkLock(&count);
+	ReleaseThunkLock(&count);
 	WaitForSingleObject(lpMidiStrm->hEvent, INFINITE);
-	if (pFnRestoreThunkLock) pFnRestoreThunkLock(count);
+	RestoreThunkLock(count);
     }
 
     TRACE("=> (%u/%d) hMidi=%p ret=%d lpMidiStrm=%p\n",






More information about the wine-patches mailing list