Module: Mesa
Branch: main
Commit: 337d58f6fcac11488f2a34aae0008b8dfe1705c2
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=337d58f6fcac11488f2a34aae0008b8dfe1705c2

Author: Chia-I Wu <[email protected]>
Date:   Fri Feb 17 14:58:02 2023 -0800

util/log: refactor mesa_log

Add logger_file and logger_android.

Reviewed-by: Emma Anholt <[email protected]>
Reviewed-by: Jesse Natalie <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21454>

---

 src/util/log.c | 74 ++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 49 insertions(+), 25 deletions(-)

diff --git a/src/util/log.c b/src/util/log.c
index 140485ff8c6..0fbe5be9513 100644
--- a/src/util/log.c
+++ b/src/util/log.c
@@ -35,7 +35,45 @@
 #include "util/log.h"
 #include "util/ralloc.h"
 
+#ifndef ANDROID
+
+static inline const char *
+level_to_str(enum mesa_log_level l)
+{
+   switch (l) {
+   case MESA_LOG_ERROR: return "error";
+   case MESA_LOG_WARN: return "warning";
+   case MESA_LOG_INFO: return "info";
+   case MESA_LOG_DEBUG: return "debug";
+   }
+
+   unreachable("bad mesa_log_level");
+}
+
+static void
+logger_file(enum mesa_log_level level,
+            const char *tag,
+            const char *format,
+            va_list va)
+{
+#if !DETECT_OS_WINDOWS
+   flockfile(stderr);
+#endif
+
+   fprintf(stderr, "%s: %s: ", tag, level_to_str(level));
+   vfprintf(stderr, format, va);
+   if (format[strlen(format) - 1] != '\n')
+      fprintf(stderr, "\n");
+
+#if !DETECT_OS_WINDOWS
+   funlockfile(stderr);
+#endif
+}
+
+#endif /* !ANDROID */
+
 #ifdef ANDROID
+
 static inline android_LogPriority
 level_to_android(enum mesa_log_level l)
 {
@@ -48,22 +86,17 @@ level_to_android(enum mesa_log_level l)
 
    unreachable("bad mesa_log_level");
 }
-#endif
 
-#ifndef ANDROID
-static inline const char *
-level_to_str(enum mesa_log_level l)
+static void
+logger_android(enum mesa_log_level level,
+               const char *tag,
+               const char *format,
+               va_list va)
 {
-   switch (l) {
-   case MESA_LOG_ERROR: return "error";
-   case MESA_LOG_WARN: return "warning";
-   case MESA_LOG_INFO: return "info";
-   case MESA_LOG_DEBUG: return "debug";
-   }
-
-   unreachable("bad mesa_log_level");
+   __android_log_vprint(level_to_android(level), tag, format, va);
 }
-#endif
+
+#endif /* ANDROID */
 
 void
 mesa_log(enum mesa_log_level level, const char *tag, const char *format, ...)
@@ -79,19 +112,10 @@ void
 mesa_log_v(enum mesa_log_level level, const char *tag, const char *format,
             va_list va)
 {
-#ifdef ANDROID
-   __android_log_vprint(level_to_android(level), tag, format, va);
+#ifndef ANDROID
+   logger_file(level, tag, format, va);
 #else
-#if !DETECT_OS_WINDOWS
-   flockfile(stderr);
-#endif
-   fprintf(stderr, "%s: %s: ", tag, level_to_str(level));
-   vfprintf(stderr, format, va);
-   if (format[strlen(format) - 1] != '\n')
-      fprintf(stderr, "\n");
-#if !DETECT_OS_WINDOWS
-   funlockfile(stderr);
-#endif
+   logger_android(level, tag, format, va);
 #endif
 }
 

Reply via email to