Eric Pouech : winmm: Simply use kernel32. {Release|Restore}ThunkLock instead of using 16bit convolutions.

Alexandre Julliard julliard at winehq.org
Fri Oct 23 10:19:04 CDT 2009


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

Author: Eric Pouech <eric.pouech at orange.fr>
Date:   Thu Oct 22 22:11:01 2009 +0200

winmm: Simply use kernel32.{Release|Restore}ThunkLock instead of using 16bit convolutions.

---

 dlls/winmm/mmsystem.c |    4 ----
 dlls/winmm/winemm.h   |    2 --
 dlls/winmm/winmm.c    |   11 ++++-------
 3 files changed, 4 insertions(+), 13 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-cvs mailing list