From c5b21ea6c10defa5b22debdd56f46019f74c0a4e Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 30 Jul 2014 11:11:48 -0400 Subject: [PATCH] SDL_GetQueuedAudioSize() shouldn't grab lock when not set up for queueing. --- src/audio/SDL_audio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c index 804138c5bc8af..7559d6ca46e80 100644 --- a/src/audio/SDL_audio.c +++ b/src/audio/SDL_audio.c @@ -472,11 +472,11 @@ SDL_QueueAudio(SDL_AudioDeviceID devid, const void *_data, Uint32 len) Uint32 SDL_GetQueuedAudioSize(SDL_AudioDeviceID devid) { - /* this happens to work for non-queueing devices, since we memset() - the device to zero at init time, and these devices should return 0. */ Uint32 retval = 0; SDL_AudioDevice *device = get_audio_device(devid); - if (device) { + + /* Nothing to do unless we're set up for queueing. */ + if (device && (device->spec.callback == SDL_BufferQueueDrainCallback)) { current_audio.impl.LockDevice(device); retval = device->queued_bytes + current_audio.impl.GetPendingBytes(device); current_audio.impl.UnlockDevice(device);