winejack.drv: Add DebugInfo to critical sections.

Jan Zerebecki jan.wine at zerebecki.de
Tue Mar 27 02:28:51 CDT 2007


---
If this patch is rejected from inclusion, please tell me why, as
I would have to ask anyway.

 dlls/winejack.drv/audio.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/dlls/winejack.drv/audio.c b/dlls/winejack.drv/audio.c
index 7cba9a5..f8638d4 100644
--- a/dlls/winejack.drv/audio.c
+++ b/dlls/winejack.drv/audio.c
@@ -856,6 +856,8 @@ LONG	JACK_WaveRelease(void)
 #else
       JACK_CloseWaveOutDevice(&WOutDev[iDevice]); /* close the device, FORCE the client to close */
 #endif
+      if(WOutDev[iDevice].access_crst.DebugInfo)
+          WOutDev[iDevice].access_crst.DebugInfo->Spare[0] = 0;
       DeleteCriticalSection(&(WOutDev[iDevice].access_crst)); /* delete the critical section */
     }
   }
@@ -873,6 +875,8 @@ LONG	JACK_WaveRelease(void)
 #else
       JACK_CloseWaveInDevice(&WInDev[iDevice]); /* close the device, FORCE the client to close */
 #endif
+      if(WInDev[iDevice].access_crst.DebugInfo)
+          WInDev[iDevice].access_crst.DebugInfo->Spare[0] = 0;
       DeleteCriticalSection(&(WInDev[iDevice].access_crst)); /* delete the critical section */
     }
   }
@@ -1303,6 +1307,7 @@ static DWORD wodOpen(WORD wDevID, LPWAVEOPENDESC lpDesc, DWORD dwFlags)
     wwo->volume_right = 100;
 
     InitializeCriticalSection(&wwo->access_crst); /* initialize the critical section */
+    wwo->access_crst.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": WINE_WAVEOUT.access_crst");
     EnterCriticalSection(&wwo->access_crst);
 
     dwFlags &= ~WAVE_DIRECTSOUND;  /* direct sound not supported, ignore the flag */
@@ -1317,6 +1322,7 @@ static DWORD wodOpen(WORD wDevID, LPWAVEOPENDESC lpDesc, DWORD dwFlags)
     {
       ERR("JACK_OpenWaveOutDevice(%d) failed\n", wDevID);
       LeaveCriticalSection(&wwo->access_crst);
+      wwo->access_crst.DebugInfo->Spare[0] = 0;
       DeleteCriticalSection(&wwo->access_crst); /* delete the critical section so we can initialize it again from wodOpen() */
       return MMSYSERR_ERROR;		/* return unspecified error */
     }
@@ -1341,6 +1347,7 @@ static DWORD wodOpen(WORD wDevID, LPWAVEOPENDESC lpDesc, DWORD dwFlags)
 #else
       JACK_CloseWaveOutDevice(wwo); /* close this device */
 #endif
+      wwo->access_crst.DebugInfo->Spare[0] = 0;
       DeleteCriticalSection(&wwo->access_crst); /* delete the critical section so we can initialize it again from wodOpen() */
       return WAVERR_BADFORMAT;
     }
@@ -1395,6 +1402,7 @@ static DWORD wodClose(WORD wDevID)
 #else
       JACK_CloseWaveOutDevice(wwo); /* close the jack device */
 #endif
+      wwo->access_crst.DebugInfo->Spare[0] = 0;
       DeleteCriticalSection(&wwo->access_crst); /* delete the critical section so we can initialize it again from wodOpen() */
 
       ret = wodNotifyClient(wwo, WOM_CLOSE, 0L, 0L);
@@ -2096,6 +2104,7 @@ static DWORD widOpen(WORD wDevID, LPWAVEOPENDESC lpDesc, DWORD dwFlags)
     wwi->state = WINE_WS_STOPPED; /* start in a stopped state */
 
     InitializeCriticalSection(&wwi->access_crst); /* initialize the critical section */
+    wwi->access_crst.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": WINE_WAVEIN.access_crst");
     EnterCriticalSection(&wwi->access_crst);
 
     /* open up jack ports for this device */
@@ -2103,6 +2112,7 @@ static DWORD widOpen(WORD wDevID, LPWAVEOPENDESC lpDesc, DWORD dwFlags)
     {
       ERR("JACK_OpenWaveInDevice(%d) failed\n", wDevID);
       LeaveCriticalSection(&wwi->access_crst);
+      wwi->access_crst.DebugInfo->Spare[0] = 0;
       DeleteCriticalSection(&wwi->access_crst);
       return MMSYSERR_ERROR;		/* return unspecified error */
     }
@@ -2134,6 +2144,7 @@ static DWORD widOpen(WORD wDevID, LPWAVEOPENDESC lpDesc, DWORD dwFlags)
 #else
       JACK_CloseWaveInDevice(wwi); /* close this device */
 #endif
+      wwi->access_crst.DebugInfo->Spare[0] = 0;
       DeleteCriticalSection(&wwi->access_crst);
       return WAVERR_BADFORMAT;
     }
@@ -2188,6 +2199,7 @@ static DWORD widClose(WORD wDevID)
 #else
 	JACK_CloseWaveInDevice(wwi); /* close the jack device */
 #endif
+        wwi->access_crst.DebugInfo->Spare[0] = 0;
 	DeleteCriticalSection(&wwi->access_crst); /* delete the critical section so we can initialize it again from wodOpen() */
 	
 	ret = widNotifyClient(wwi, WIM_CLOSE, 0L, 0L);



More information about the wine-patches mailing list