Parcourir la source

Do a final pass freeing temporary memory when we quit.

Fixes https://github.com/libsdl-org/SDL/issues/10169
Sam Lantinga il y a 9 mois
Parent
commit
9d47daef0a
3 fichiers modifiés avec 4 ajouts et 1 suppressions
  1. 2 0
      src/SDL.c
  2. 1 1
      src/events/SDL_events.c
  3. 1 0
      src/events/SDL_events_c.h

+ 2 - 0
src/SDL.c

@@ -559,6 +559,8 @@ void SDL_Quit(void)
      */
     SDL_memset(SDL_SubsystemRefCount, 0x0, sizeof(SDL_SubsystemRefCount));
 
+    SDL_FlushEventMemory(0);
+
     SDL_CleanupTLS();
 
     SDL_FreeEnvironmentMemory();

+ 1 - 1
src/events/SDL_events.c

@@ -143,7 +143,7 @@ const char *SDL_AllocateEventString(const char *string)
     return NULL;
 }
 
-static void SDL_FlushEventMemory(Uint32 eventID)
+void SDL_FlushEventMemory(Uint32 eventID)
 {
     SDL_LockMutex(SDL_event_memory_lock);
     {

+ 1 - 0
src/events/SDL_events_c.h

@@ -38,6 +38,7 @@
 /* Start and stop the event processing loop */
 extern int SDL_StartEventLoop(void);
 extern void SDL_StopEventLoop(void);
+extern void SDL_FlushEventMemory(Uint32 eventID);
 extern void SDL_QuitInterrupt(void);
 
 extern const char *SDL_AllocateEventString(const char *string);