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

This prevents dependent subsystems from being deinitialized multiple times
This commit is contained in:
Sam Lantinga
2024-03-20 15:45:13 -07:00
parent 171ff041d0
commit c33e4c998d

View File

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