coreaudio: Make sure Port_SendToMessageThread is not NULL before calling CFMessagePortSendRequest.

Prevents crashing when closing audio device during playback.
This commit is contained in:
Aric Stewart 2008-07-10 11:28:56 +09:00 committed by Alexandre Julliard
parent 031ee3e695
commit 686ea70c18

View File

@ -349,6 +349,9 @@ static void wodSendNotifyCompletionsMessage(WINE_WAVEOUT* wwo)
CFDataRef data;
UInt32 buffer;
if (!Port_SendToMessageThread)
return;
buffer = (UInt32) wwo->woID;
data = CFDataCreate(kCFAllocatorDefault, (UInt8 *)&buffer, sizeof(buffer));
@ -368,6 +371,9 @@ static void wodSendNotifyInputCompletionsMessage(WINE_WAVEIN* wwi)
CFDataRef data;
UInt32 buffer;
if (!Port_SendToMessageThread)
return;
buffer = (UInt32) wwi->wiID;
data = CFDataCreate(kCFAllocatorDefault, (UInt8 *)&buffer, sizeof(buffer));
@ -694,6 +700,9 @@ void CoreAudio_WaveRelease(void)
/* Stop CFRunLoop in messageThread */
TRACE("()\n");
if (!Port_SendToMessageThread)
return;
CFMessagePortSendRequest(Port_SendToMessageThread, kStopLoopMessage, NULL, 0.0, 0.0, NULL, NULL);
CFRelease(Port_SendToMessageThread);
Port_SendToMessageThread = NULL;