Browse Source

Clear the subsystem ref count when shutting down subsystems in the main quit

This prevents dependent subsystems from being deinitialized multiple times
Sam Lantinga 1 year ago
parent
commit
c33e4c998d
1 changed files with 5 additions and 1 deletions
  1. 5 1
      src/SDL.c

+ 5 - 1
src/SDL.c

@@ -131,7 +131,11 @@ static void SDL_DecrementSubsystemRefCount(Uint32 subsystem)
 {
     const int subsystem_index = SDL_MostSignificantBitIndex32(subsystem);
     if ((subsystem_index >= 0) && (SDL_SubsystemRefCount[subsystem_index] > 0)) {
-        --SDL_SubsystemRefCount[subsystem_index];
+        if (SDL_bInMainQuit) {
+            SDL_SubsystemRefCount[subsystem_index] = 0;
+        } else {
+            --SDL_SubsystemRefCount[subsystem_index];
+        }
     }
 }