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