Huw Davies : winmm: Only fill in the MIXERLINEA struct if the call to mixerGetLineInfoW succeeds .

Alexandre Julliard julliard at winehq.org
Fri Jul 18 06:47:06 CDT 2008


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

Author: Huw Davies <huw at codeweavers.com>
Date:   Fri Jul 18 12:05:52 2008 +0100

winmm: Only fill in the MIXERLINEA struct if the call to mixerGetLineInfoW succeeds.

---

 dlls/winmm/winmm.c |   44 +++++++++++++++++++++++---------------------
 1 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/dlls/winmm/winmm.c b/dlls/winmm/winmm.c
index 8342c44..8c37a18 100644
--- a/dlls/winmm/winmm.c
+++ b/dlls/winmm/winmm.c
@@ -652,27 +652,29 @@ UINT WINAPI mixerGetLineInfoA(HMIXEROBJ hmix, LPMIXERLINEA lpmliA,
 
     ret = mixerGetLineInfoW(hmix, &mliW, fdwInfo);
 
-    lpmliA->dwDestination = mliW.dwDestination;
-    lpmliA->dwSource = mliW.dwSource;
-    lpmliA->dwLineID = mliW.dwLineID;
-    lpmliA->fdwLine = mliW.fdwLine;
-    lpmliA->dwUser = mliW.dwUser;
-    lpmliA->dwComponentType = mliW.dwComponentType;
-    lpmliA->cChannels = mliW.cChannels;
-    lpmliA->cConnections = mliW.cConnections;
-    lpmliA->cControls = mliW.cControls;
-    WideCharToMultiByte( CP_ACP, 0, mliW.szShortName, -1, lpmliA->szShortName,
-                         sizeof(lpmliA->szShortName), NULL, NULL);
-    WideCharToMultiByte( CP_ACP, 0, mliW.szName, -1, lpmliA->szName,
-                         sizeof(lpmliA->szName), NULL, NULL );
-    lpmliA->Target.dwType = mliW.Target.dwType;
-    lpmliA->Target.dwDeviceID = mliW.Target.dwDeviceID;
-    lpmliA->Target.wMid = mliW.Target.wMid;
-    lpmliA->Target.wPid = mliW.Target.wPid;
-    lpmliA->Target.vDriverVersion = mliW.Target.vDriverVersion;
-    WideCharToMultiByte( CP_ACP, 0, mliW.Target.szPname, -1, lpmliA->Target.szPname,
-                         sizeof(lpmliA->Target.szPname), NULL, NULL );
-
+    if(ret == MMSYSERR_NOERROR)
+    {
+        lpmliA->dwDestination = mliW.dwDestination;
+        lpmliA->dwSource = mliW.dwSource;
+        lpmliA->dwLineID = mliW.dwLineID;
+        lpmliA->fdwLine = mliW.fdwLine;
+        lpmliA->dwUser = mliW.dwUser;
+        lpmliA->dwComponentType = mliW.dwComponentType;
+        lpmliA->cChannels = mliW.cChannels;
+        lpmliA->cConnections = mliW.cConnections;
+        lpmliA->cControls = mliW.cControls;
+        WideCharToMultiByte( CP_ACP, 0, mliW.szShortName, -1, lpmliA->szShortName,
+                             sizeof(lpmliA->szShortName), NULL, NULL);
+        WideCharToMultiByte( CP_ACP, 0, mliW.szName, -1, lpmliA->szName,
+                             sizeof(lpmliA->szName), NULL, NULL );
+        lpmliA->Target.dwType = mliW.Target.dwType;
+        lpmliA->Target.dwDeviceID = mliW.Target.dwDeviceID;
+        lpmliA->Target.wMid = mliW.Target.wMid;
+        lpmliA->Target.wPid = mliW.Target.wPid;
+        lpmliA->Target.vDriverVersion = mliW.Target.vDriverVersion;
+        WideCharToMultiByte( CP_ACP, 0, mliW.Target.szPname, -1, lpmliA->Target.szPname,
+                             sizeof(lpmliA->Target.szPname), NULL, NULL );
+    }
     return ret;
 }
 




More information about the wine-cvs mailing list