From e08edab1804b3804d879a9f273885dd39c5b1931 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sat, 25 Oct 2025 15:13:37 -0700
Subject: [PATCH] Log object leaks at debug level
End users don't care about this. Developers can enable debug logs, run with DEBUG_INVOCATION=1, or use other leak checking tools to detect these.
---
src/SDL_utils.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/SDL_utils.c b/src/SDL_utils.c
index 34b6377ae84f3..399c3f5157dcb 100644
--- a/src/SDL_utils.c
+++ b/src/SDL_utils.c
@@ -250,7 +250,7 @@ static bool SDLCALL LogOneLeakedObject(void *userdata, const SDL_HashTable *tabl
#undef SDLOBJTYPECASE
default: break;
}
- SDL_Log("Leaked %s (%p)", type, object);
+ SDL_LogDebug(SDL_LOG_CATEGORY_SYSTEM, "Leaked %s (%p)", type, object);
return true; // keep iterating.
}
@@ -259,7 +259,6 @@ void SDL_SetObjectsInvalid(void)
if (SDL_ShouldQuit(&SDL_objects_init)) {
// Log any leaked objects
SDL_IterateHashTable(SDL_objects, LogOneLeakedObject, NULL);
- SDL_assert(SDL_HashTableEmpty(SDL_objects));
SDL_DestroyHashTable(SDL_objects);
SDL_objects = NULL;
SDL_SetInitialized(&SDL_objects_init, false);