Andrew Eikum : dsound: Lock the source buffer during duplication.

Alexandre Julliard julliard at winehq.org
Tue Jan 17 13:45:24 CST 2012


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

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Mon Jan 16 14:02:45 2012 -0600

dsound: Lock the source buffer during duplication.

---

 dlls/dsound/buffer.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index bc9b955..1ea2d0d 100644
--- a/dlls/dsound/buffer.c
+++ b/dlls/dsound/buffer.c
@@ -1083,9 +1083,15 @@ HRESULT IDirectSoundBufferImpl_Duplicate(
         *ppdsb = NULL;
         return DSERR_OUTOFMEMORY;
     }
+
+    RtlAcquireResourceShared(&pdsb->lock, TRUE);
+
     CopyMemory(dsb, pdsb, sizeof(*dsb));
 
     dsb->pwfx = DSOUND_CopyFormat(pdsb->pwfx);
+
+    RtlReleaseResource(&pdsb->lock);
+
     if (dsb->pwfx == NULL) {
         HeapFree(GetProcessHeap(),0,dsb);
         *ppdsb = NULL;




More information about the wine-cvs mailing list