Browse Source

Fix order of events in case audio buffer size changes

(cherry picked from commit a4ec0b1531f0bf79ada28202114d933e821261e7)
staphen 5 months ago
parent
commit
0251b14be3
1 changed files with 2 additions and 2 deletions
  1. 2 2
      src/audio/SDL_audio.c

+ 2 - 2
src/audio/SDL_audio.c

@@ -700,8 +700,6 @@ static int SDLCALL SDL_RunAudio(void *userdata)
 
     /* Loop, filling the audio buffers */
     while (!SDL_AtomicGet(&device->shutdown)) {
-        data_len = device->callbackspec.size;
-
         /* Fill the current buffer with sound */
         if (!device->stream && SDL_AtomicGet(&device->enabled)) {
             data = current_audio.impl.GetDeviceBuf(device);
@@ -728,6 +726,8 @@ static int SDLCALL SDL_RunAudio(void *userdata)
             data = device->work_buffer;
         }
 
+        data_len = device->callbackspec.size;
+
         /* !!! FIXME: this should be LockDevice. */
         SDL_LockMutex(device->mixer_lock);
         if (SDL_AtomicGet(&device->paused)) {