[PATCH (try2)] winmm: Reset dwUser in mixerGetLineInfo

Andrew Eikum aeikum at codeweavers.com
Wed Feb 10 12:33:23 CST 2016


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
---

try2: Add tests and fix behavior

CID 215555

---
 dlls/winmm/tests/mixer.c | 4 ++++
 dlls/winmm/waveform.c    | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/dlls/winmm/tests/mixer.c b/dlls/winmm/tests/mixer.c
index 82eb338..f03a71e 100644
--- a/dlls/winmm/tests/mixer.c
+++ b/dlls/winmm/tests/mixer.c
@@ -438,11 +438,13 @@ static void mixer_test_deviceA(int device)
 
             mixerlineA.cbStruct = sizeof(mixerlineA);
             mixerlineA.dwDestination=d;
+            mixerlineA.dwUser = (ULONG_PTR)0xdeadbeef;
             rc = mixerGetLineInfoA(mix, &mixerlineA, MIXER_GETLINEINFOF_DESTINATION);
             ok(rc==MMSYSERR_NOERROR||rc==MMSYSERR_NODRIVER,
                "mixerGetLineInfoA(MIXER_GETLINEINFOF_DESTINATION): "
                "MMSYSERR_NOERROR expected, got %s\n",
                mmsys_error(rc));
+            ok(mixerlineA.dwUser == 0, "dwUser was not reset\n");
             if (rc==MMSYSERR_NODRIVER)
                 trace("  No Driver\n");
             else if (rc==MMSYSERR_NOERROR) {
@@ -822,11 +824,13 @@ static void mixer_test_deviceW(int device)
 
             mixerlineW.cbStruct = sizeof(mixerlineW);
             mixerlineW.dwDestination=d;
+            mixerlineW.dwUser = (ULONG_PTR)0xdeadbeef;
             rc = mixerGetLineInfoW(mix, &mixerlineW, MIXER_GETLINEINFOF_DESTINATION);
             ok(rc==MMSYSERR_NOERROR||rc==MMSYSERR_NODRIVER,
                "mixerGetLineInfoW(MIXER_GETLINEINFOF_DESTINATION): "
                "MMSYSERR_NOERROR expected, got %s\n",
                mmsys_error(rc));
+            ok(mixerlineW.dwUser == 0, "dwUser was not reset\n");
             if (rc==MMSYSERR_NODRIVER)
                 trace("  No Driver\n");
             else if (rc==MMSYSERR_NOERROR && winetest_interactive) {
diff --git a/dlls/winmm/waveform.c b/dlls/winmm/waveform.c
index 93a5004..a4917a2 100644
--- a/dlls/winmm/waveform.c
+++ b/dlls/winmm/waveform.c
@@ -4287,6 +4287,8 @@ UINT WINAPI mixerGetLineInfoW(HMIXEROBJ hmix, LPMIXERLINEW lpmliW, DWORD fdwInfo
     if(!mmdevice)
         return MMSYSERR_INVALHANDLE;
 
+    lpmliW->dwUser = 0;
+
     switch(fdwInfo & MIXER_GETLINEINFOF_QUERYMASK){
     case MIXER_GETLINEINFOF_DESTINATION:
         return WINMM_GetDestinationLineInfo(mmdevice, mmdev_index, lpmliW,
-- 
2.7.1




More information about the wine-patches mailing list