Alistair Leslie-Hughes : dmime: IDirectMusicSegment8 SetLoopPoints support zero start/end.

Alexandre Julliard julliard at winehq.org
Mon Apr 20 15:01:55 CDT 2020


Module: wine
Branch: oldstable
Commit: c74ab1766f9957377df1af497e31bcc99b7241ac
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=c74ab1766f9957377df1af497e31bcc99b7241ac

Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date:   Sat Jan  4 16:44:16 2020 +0100

dmime: IDirectMusicSegment8 SetLoopPoints support zero start/end.

Both end and start set to zero loop the whole segement.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=25728
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit 01d521e5afc39dfcfc1487f60102afe0e58337b8)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>

---

 dlls/dmime/segment.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c
index 9a9872bd4c..0c7a9dc797 100644
--- a/dlls/dmime/segment.c
+++ b/dlls/dmime/segment.c
@@ -463,17 +463,20 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_GetStartPoint(IDirectMusicSegment
 }
 
 static HRESULT WINAPI IDirectMusicSegment8Impl_SetLoopPoints(IDirectMusicSegment8 *iface,
-        MUSIC_TIME mtStart, MUSIC_TIME mtEnd)
+        MUSIC_TIME start, MUSIC_TIME end)
 {
-  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+    IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
 
-  TRACE("(%p, %d, %d)\n", This, mtStart, mtEnd);
-  if (mtStart >= This->header.mtLength || mtEnd > This->header.mtLength || mtStart > mtEnd) {
-    return DMUS_E_OUT_OF_RANGE;
-  }
-  This->header.mtLoopStart = mtStart;
-  This->header.mtLoopEnd   = mtEnd;
-  return S_OK;
+    TRACE("(%p, %d, %d)\n", This, start, end);
+
+    if ((end || start) &&
+            (start >= This->header.mtLength || end > This->header.mtLength || start > end))
+        return DMUS_E_OUT_OF_RANGE;
+
+    This->header.mtLoopStart = start;
+    This->header.mtLoopEnd = end;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI IDirectMusicSegment8Impl_GetLoopPoints(IDirectMusicSegment8 *iface,




More information about the wine-cvs mailing list