Commit be8d7a46fb862b8ecd56c8e4edf705b218cd0af9

Ryan C. Gordon 2016-08-09T00:44:05

audio: simplifed check for internal callback. Easier to check when it's NULL instead of a list of known internal functions.

diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c
index cabf560..ec65d0c 100644
--- a/src/audio/SDL_audio.c
+++ b/src/audio/SDL_audio.c
@@ -1143,6 +1143,7 @@ open_audio_device(const char *devname, int iscapture,
                   const SDL_AudioSpec * desired, SDL_AudioSpec * obtained,
                   int allowed_changes, int min_id)
 {
+    const SDL_bool is_internal_thread = (desired->callback != NULL);
     SDL_AudioDeviceID id = 0;
     SDL_AudioSpec _obtained;
     SDL_AudioDevice *device;
@@ -1379,11 +1380,7 @@ open_audio_device(const char *devname, int iscapture,
         /* !!! FIXME: we don't force the audio thread stack size here because it calls into user code, but maybe we should? */
         /* buffer queueing callback only needs a few bytes, so make the stack tiny. */
         char name[64];
-        const SDL_bool is_internal_thread =
-            (device->spec.callback == SDL_BufferQueueDrainCallback) ||
-            (device->spec.callback == SDL_BufferQueueFillCallback);
         const size_t stacksize = is_internal_thread ? 64 * 1024 : 0;
-
         SDL_snprintf(name, sizeof (name), "SDLAudioDev%d", (int) device->id);
         device->thread = SDL_CreateThreadInternal(iscapture ? SDL_CaptureAudio : SDL_RunAudio, name, stacksize, device);