瀏覽代碼

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.
Sam Lantinga 1 月之前
父節點
當前提交
e08edab180
共有 1 個文件被更改,包括 1 次插入2 次删除
  1. 1 2
      src/SDL_utils.c

+ 1 - 2
src/SDL_utils.c

@@ -250,7 +250,7 @@ static bool SDLCALL LogOneLeakedObject(void *userdata, const SDL_HashTable *tabl
         #undef SDLOBJTYPECASE
         #undef SDLOBJTYPECASE
         default: break;
         default: break;
     }
     }
-    SDL_Log("Leaked %s (%p)", type, object);
+    SDL_LogDebug(SDL_LOG_CATEGORY_SYSTEM, "Leaked %s (%p)", type, object);
     return true;  // keep iterating.
     return true;  // keep iterating.
 }
 }
 
 
@@ -259,7 +259,6 @@ void SDL_SetObjectsInvalid(void)
     if (SDL_ShouldQuit(&SDL_objects_init)) {
     if (SDL_ShouldQuit(&SDL_objects_init)) {
         // Log any leaked objects
         // Log any leaked objects
         SDL_IterateHashTable(SDL_objects, LogOneLeakedObject, NULL);
         SDL_IterateHashTable(SDL_objects, LogOneLeakedObject, NULL);
-        SDL_assert(SDL_HashTableEmpty(SDL_objects));
         SDL_DestroyHashTable(SDL_objects);
         SDL_DestroyHashTable(SDL_objects);
         SDL_objects = NULL;
         SDL_objects = NULL;
         SDL_SetInitialized(&SDL_objects_init, false);
         SDL_SetInitialized(&SDL_objects_init, false);