SDL: log: Make the message buffer static.

From fde9a7086e5b1bb264250b94dc4969f39bff722b Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Wed, 27 Apr 2022 12:05:07 -0400
Subject: [PATCH] log: Make the message buffer static.

Now we don't have to worry about allocation failure, or performance
issues or changes to the allocation layout when trying to track down
subtle bugs.
---
 src/SDL_log.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/SDL_log.c b/src/SDL_log.c
index b31574da994..b56bdbb53c3 100644
--- a/src/SDL_log.c
+++ b/src/SDL_log.c
@@ -284,7 +284,7 @@ GetCategoryPrefix(int category)
 void
 SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list ap)
 {
-    char *message;
+    static char message[SDL_MAX_LOG_MESSAGE]
     size_t len;
 
     /* Nothing to do if we don't have an output function */
@@ -302,9 +302,13 @@ SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list
         return;
     }
 
-    message = (char *) SDL_malloc(SDL_MAX_LOG_MESSAGE);
-    if (!message) {
-        return;
+    if (!log_function_mutex) {
+        /* this mutex creation can race if you log from two threads at startup. You should have called SDL_Init first! */
+        log_function_mutex = SDL_CreateMutex();
+    }
+
+    if (log_function_mutex) {
+        SDL_LockMutex(log_function_mutex);
     }
 
     SDL_vsnprintf(message, SDL_MAX_LOG_MESSAGE, fmt, ap);
@@ -318,11 +322,11 @@ SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list
         }
     }
 
-    /* this mutex creation can race if you log from two threads at startup. You should have called SDL_Init first! */
-    if (!log_function_mutex) { log_function_mutex = SDL_CreateMutex(); }
-    if (log_function_mutex) { SDL_LockMutex(log_function_mutex); }
     SDL_log_function(SDL_log_userdata, category, priority, message);
-    if (log_function_mutex) { SDL_UnlockMutex(log_function_mutex); }
+
+    if (log_function_mutex) {
+        SDL_UnlockMutex(log_function_mutex);
+    }
 
     SDL_free(message);
 }