=?UTF-8?Q?J=C3=B6rg=20H=C3=B6hle=20?=: mmsystem: Do not rewrite input parameters.
Alexandre Julliard
julliard at winehq.org
Wed Feb 27 14:41:58 CST 2013
Module: wine
Branch: master
Commit: 1cc26cba6f7ad86d454b252f41ca93bb1005ddcd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1cc26cba6f7ad86d454b252f41ca93bb1005ddcd
Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date: Tue Feb 19 22:54:17 2013 +0100
mmsystem: Do not rewrite input parameters.
---
dlls/mmsystem.dll16/message16.c | 12 ------------
dlls/mmsystem.dll16/mmsystem.c | 38 ++++----------------------------------
2 files changed, 4 insertions(+), 46 deletions(-)
diff --git a/dlls/mmsystem.dll16/message16.c b/dlls/mmsystem.dll16/message16.c
index 0935ca0..24ae6ef 100644
--- a/dlls/mmsystem.dll16/message16.c
+++ b/dlls/mmsystem.dll16/message16.c
@@ -188,8 +188,6 @@ static MMSYSTEM_MapType MMSYSTDRV_MidiOut_Map16To32W (UINT wMsg, DWORD_PTR* lpP
mh32->dwBytesRecorded = mh16->dwBytesRecorded;
mh32->dwUser = mh16->dwUser;
mh32->dwFlags = mh16->dwFlags;
- /* FIXME: nothing on mh32->lpNext */
- /* could link the mh32->lpNext at this level for memory house keeping */
mh32->dwOffset = (*lpParam2 >= sizeof(MIDIHDR)) ? mh16->dwOffset : 0;
mh16->lpNext = mh32; /* for reuse in unprepare and write */
/* store size of passed MIDIHDR?? structure to know if dwOffset is available or not */
@@ -278,9 +276,6 @@ static MMSYSTEM_MapType MMSYSTDRV_MidiOut_UnMap16To32W(UINT wMsg, DWORD_PTR* lp
LPMIDIHDR mh16 = MapSL(*(SEGPTR*)((LPSTR)mh32 - sizeof(LPMIDIHDR)));
assert(mh16->lpNext == mh32);
- mh16->dwBufferLength = mh32->dwBufferLength;
- mh16->dwBytesRecorded = mh32->dwBytesRecorded;
- mh16->dwUser = mh32->dwUser;
mh16->dwFlags = mh32->dwFlags;
if (mh16->reserved >= sizeof(MIDIHDR))
mh16->dwOffset = mh32->dwOffset;
@@ -501,11 +496,8 @@ static MMSYSTEM_MapType MMSYSTDRV_WaveIn_UnMap16To32W(UINT wMsg, DWORD_PTR* lpP
LPWAVEHDR wh16 = MapSL(*(SEGPTR*)((LPSTR)wh32 - sizeof(LPWAVEHDR)));
assert(wh16->lpNext == wh32);
- wh16->dwBufferLength = wh32->dwBufferLength;
wh16->dwBytesRecorded = wh32->dwBytesRecorded;
- wh16->dwUser = wh32->dwUser;
wh16->dwFlags = wh32->dwFlags;
- wh16->dwLoops = wh32->dwLoops;
if (wMsg == WIDM_UNPREPARE && fn_ret == MMSYSERR_NOERROR) {
HeapFree(GetProcessHeap(), 0, (LPSTR)wh32 - sizeof(LPWAVEHDR));
@@ -734,11 +726,7 @@ static MMSYSTEM_MapType MMSYSTDRV_WaveOut_UnMap16To32W(UINT wMsg, DWORD_PTR* lp
LPWAVEHDR wh16 = MapSL(*(SEGPTR*)((LPSTR)wh32 - sizeof(LPWAVEHDR)));
assert(wh16->lpNext == wh32);
- wh16->dwBufferLength = wh32->dwBufferLength;
- wh16->dwBytesRecorded = wh32->dwBytesRecorded;
- wh16->dwUser = wh32->dwUser;
wh16->dwFlags = wh32->dwFlags;
- wh16->dwLoops = wh32->dwLoops;
if (wMsg == WODM_UNPREPARE && fn_ret == MMSYSERR_NOERROR) {
HeapFree(GetProcessHeap(), 0, (LPSTR)wh32 - sizeof(LPWAVEHDR));
diff --git a/dlls/mmsystem.dll16/mmsystem.c b/dlls/mmsystem.dll16/mmsystem.c
index 58b46d9..ac9915f 100644
--- a/dlls/mmsystem.dll16/mmsystem.c
+++ b/dlls/mmsystem.dll16/mmsystem.c
@@ -104,20 +104,6 @@ void MMSYSTEM_MMTIME32to16(LPMMTIME16 mmt16, const MMTIME* mmt32)
memcpy(&(mmt16->u), &(mmt32->u), sizeof(mmt16->u));
}
-/******************************************************************
- * MMSYSTEM_MMTIME16to32
- *
- *
- */
-static void MMSYSTEM_MMTIME16to32(LPMMTIME mmt32, const MMTIME16* mmt16)
-{
- mmt32->wType = mmt16->wType;
- /* layout of rest is the same for 32/16,
- * Note: mmt16->u is 2 bytes smaller than mmt32->u, which has padding
- */
- memcpy(&(mmt32->u), &(mmt16->u), sizeof(mmt16->u));
-}
-
/**************************************************************************
* timeGetSystemTime [MMSYSTEM.601]
*/
@@ -1153,7 +1139,7 @@ MMRESULT16 WINAPI midiStreamPosition16(HMIDISTRM16 hMidiStrm, LPMMTIME16 lpmmt16
if (!lpmmt16)
return MMSYSERR_INVALPARAM;
- MMSYSTEM_MMTIME16to32(&mmt32, lpmmt16);
+ mmt32.wType = lpmmt16->wType;
ret = midiStreamPosition(HMIDISTRM_32(hMidiStrm), &mmt32, sizeof(MMTIME));
MMSYSTEM_MMTIME32to16(lpmmt16, &mmt32);
return ret;
@@ -1288,24 +1274,11 @@ UINT16 WINAPI waveOutPrepareHeader16(HWAVEOUT16 hWaveOut, /* [in] */
SEGPTR lpsegWaveOutHdr, /* [???] */
UINT16 uSize) /* [in] */
{
- LPWAVEHDR lpWaveOutHdr = MapSL(lpsegWaveOutHdr);
- UINT16 result;
-
TRACE("(%04X, %08x, %u);\n", hWaveOut, lpsegWaveOutHdr, uSize);
- if (lpWaveOutHdr == NULL) return MMSYSERR_INVALPARAM;
+ if (lpsegWaveOutHdr == 0) return MMSYSERR_INVALPARAM;
- if ((result = MMSYSTDRV_Message(HWAVEOUT_32(hWaveOut), WODM_PREPARE, lpsegWaveOutHdr,
- uSize)) != MMSYSERR_NOTSUPPORTED)
- return result;
-
- if (lpWaveOutHdr->dwFlags & WHDR_INQUEUE)
- return WAVERR_STILLPLAYING;
-
- lpWaveOutHdr->dwFlags |= WHDR_PREPARED;
- lpWaveOutHdr->dwFlags &= ~WHDR_DONE;
-
- return MMSYSERR_NOERROR;
+ return MMSYSTDRV_Message(HWAVEOUT_32(hWaveOut), WODM_PREPARE, lpsegWaveOutHdr, uSize);
}
/**************************************************************************
@@ -1581,15 +1554,12 @@ UINT16 WINAPI waveInPrepareHeader16(HWAVEIN16 hWaveIn, /* [in] */
UINT16 uSize) /* [in] */
{
LPWAVEHDR lpWaveInHdr = MapSL(lpsegWaveInHdr);
- UINT16 ret;
TRACE("(%04X, %p, %u);\n", hWaveIn, lpWaveInHdr, uSize);
if (lpWaveInHdr == NULL) return MMSYSERR_INVALHANDLE;
- lpWaveInHdr->dwBytesRecorded = 0;
- ret = MMSYSTDRV_Message(HWAVEIN_32(hWaveIn), WIDM_PREPARE, lpsegWaveInHdr, uSize);
- return ret;
+ return MMSYSTDRV_Message(HWAVEIN_32(hWaveIn), WIDM_PREPARE, lpsegWaveInHdr, uSize);
}
/**************************************************************************
More information about the wine-cvs
mailing list