[PATCH 17/17] dsound: Handle impossible situation better

Maarten Lankhorst m.b.lankhorst at gmail.com
Wed Mar 10 02:02:44 CST 2010


---
 dlls/dsound/mixer.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/dlls/dsound/mixer.c b/dlls/dsound/mixer.c
index d014c4b..698e586 100644
--- a/dlls/dsound/mixer.c
+++ b/dlls/dsound/mixer.c
@@ -599,7 +599,9 @@ static DWORD DSOUND_MixOne(IDirectSoundBufferImpl *dsb, DWORD writepos, DWORD mi
 	{
 		/* Should *NEVER* happen */
 		ERR("Fatal error. Under/Overflow? primary_done=%d, mixpos=%d/%d (%d/%d), primary_mixpos=%d, writepos=%d, mixlen=%d\n", primary_done,dsb->buf_mixpos,dsb->tmp_buffer_len,dsb->sec_mixpos, dsb->buflen, dsb->primary_mixpos, writepos, mixlen);
-		return 0;
+		dsb->primary_mixpos = writepos + mixlen;
+		dsb->primary_mixpos %= dsb->device->buflen;
+		return mixlen;
 	}
 
 	/* take into account already mixed data */
-- 
1.7.0


--------------050300030501010906030505--



More information about the wine-patches mailing list