Browse Source

SDL_test: introduce SDLTest_CommonDestroyState to only destroy SDLTest_CommonState

Anonymous Maarten 2 years ago
parent
commit
08c85ebae0
2 changed files with 15 additions and 3 deletions
  1. 8 1
      include/SDL3/SDL_test_common.h
  2. 7 2
      src/test/SDL_test_common.c

+ 8 - 1
include/SDL3/SDL_test_common.h

@@ -122,7 +122,7 @@ typedef struct
     int gl_debug;
     int gl_profile_mask;
 
-    /* Additional fields added in 2.0.18 */
+    /* Mouse info */
     SDL_Rect confine;
 
 } SDLTest_CommonState;
@@ -145,6 +145,13 @@ extern "C" {
  */
 SDLTest_CommonState *SDLTest_CommonCreateState(char **argv, Uint32 flags);
 
+/**
+ * \brief Free the common state object.
+ *
+ * \param state The common state object to destroy
+ */
+void SDLTest_CommonDestroyState(SDLTest_CommonState *state);
+
 /**
  * \brief Process one common argument.
  *

+ 7 - 2
src/test/SDL_test_common.c

@@ -118,6 +118,12 @@ SDLTest_CommonCreateState(char **argv, Uint32 flags)
     return state;
 }
 
+void
+SDLTest_CommonDestroyState(SDLTest_CommonState *state) {
+    SDLTest_LogAllocations();
+    SDL_free(state);
+}
+
 #define SEARCHARG(dim)                  \
     while (*(dim) && *(dim) != ',') {   \
         ++(dim);                        \
@@ -2261,9 +2267,8 @@ void SDLTest_CommonQuit(SDLTest_CommonState *state)
     if (state->flags & SDL_INIT_AUDIO) {
         SDL_QuitSubSystem(SDL_INIT_AUDIO);
     }
-    SDL_free(state);
     SDL_Quit();
-    SDLTest_LogAllocations();
+    SDLTest_CommonDestroyState(state);
 }
 
 void SDLTest_CommonDrawWindowInfo(SDL_Renderer *renderer, SDL_Window *window, float *usedHeight)