dsound lock name patch
Robert Reif
reif at earthlink.net
Fri Sep 10 14:53:52 CDT 2004
Remove lock name from lock debug structure before deletion so it gets
freed properly.
-------------- next part --------------
Index: dlls/dsound/buffer.c
===================================================================
RCS file: /home/wine/wine/dlls/dsound/buffer.c,v
retrieving revision 1.36
diff -u -r1.36 buffer.c
--- dlls/dsound/buffer.c 10 Sep 2004 19:34:01 -0000 1.36
+++ dlls/dsound/buffer.c 10 Sep 2004 19:50:59 -0000
@@ -394,6 +394,7 @@
DSOUND_RemoveBuffer(This->dsound, This);
+ This->lock.DebugInfo->Spare[1] = 0;
DeleteCriticalSection(&(This->lock));
if (This->hwbuf) {
@@ -1223,6 +1224,7 @@
HeapFree(GetProcessHeap(),0,dsb->buffer->memory);
if (dsb->buffer)
HeapFree(GetProcessHeap(),0,dsb->buffer);
+ dsb->lock.DebugInfo->Spare[1] = 0;
DeleteCriticalSection(&(dsb->lock));
HeapFree(GetProcessHeap(),0,dsb->pwfx);
HeapFree(GetProcessHeap(),0,dsb);
Index: dlls/dsound/capture.c
===================================================================
RCS file: /home/wine/wine/dlls/dsound/capture.c,v
retrieving revision 1.32
diff -u -r1.32 capture.c
--- dlls/dsound/capture.c 9 Sep 2004 20:17:08 -0000 1.32
+++ dlls/dsound/capture.c 10 Sep 2004 19:51:00 -0000
@@ -415,6 +415,7 @@
if (This->pwfx)
HeapFree(GetProcessHeap(), 0, This->pwfx);
+ This->lock.DebugInfo->Spare[1] = 0;
DeleteCriticalSection( &(This->lock) );
HeapFree( GetProcessHeap(), 0, This );
dsound_capture = NULL;
@@ -1787,6 +1788,7 @@
LeaveCriticalSection( &(This->lock) );
if ( uRef == 0 ) {
+ This->lock.DebugInfo->Spare[1] = 0;
DeleteCriticalSection( &(This->lock) );
HeapFree( GetProcessHeap(), 0, This );
TRACE("(%p) released\n",This);
Index: dlls/dsound/dsound.c
===================================================================
RCS file: /home/wine/wine/dlls/dsound/dsound.c,v
retrieving revision 1.21
diff -u -r1.21 dsound.c
--- dlls/dsound/dsound.c 9 Sep 2004 20:17:08 -0000 1.21
+++ dlls/dsound/dsound.c 10 Sep 2004 19:51:02 -0000
@@ -302,6 +302,7 @@
IDsDriver_Release(This->driver);
RtlDeleteResource(&This->buffer_list_lock);
+ This->mixlock.DebugInfo->Spare[1] = 0;
DeleteCriticalSection(&This->mixlock);
HeapFree(GetProcessHeap(),0,This);
dsound = NULL;
@@ -604,6 +605,7 @@
hres = DSOUND_AddBuffer(This, dsb);
if (hres != DS_OK) {
IDirectSoundBuffer8_Release(psb);
+ dsb->lock.DebugInfo->Spare[1] = 0;
DeleteCriticalSection(&(dsb->lock));
HeapFree(GetProcessHeap(),0,dsb->buffer);
HeapFree(GetProcessHeap(),0,dsb->pwfx);
More information about the wine-patches
mailing list