]> AND Public Git Repository - simgrid.git/blobdiff - src/xbt/log.cpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix pip builds
[simgrid.git] / src / xbt / log.cpp
index ba62665372e3b7f67e6eabb1a18ff92bb46c5892..ef3fd942cd354a4ed24216208a5645cb739a914f 100644 (file)
@@ -1,6 +1,6 @@
 /* log - a generic logging facility in the spirit of log4j                  */
 
-/* Copyright (c) 2004-2019. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2004-2020. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -125,8 +125,6 @@ void xbt_log_init(int *argc, char **argv)
 
 static void log_cat_exit(const s_xbt_log_category_t* cat)
 {
-  xbt_log_category_t child;
-
   if (cat->appender) {
     if (cat->appender->free_)
       cat->appender->free_(cat->appender);
@@ -138,7 +136,7 @@ static void log_cat_exit(const s_xbt_log_category_t* cat)
     xbt_free(cat->layout);
   }
 
-  for (child = cat->firstChild; child != nullptr; child = child->nextSibling)
+  for (auto const* child = cat->firstChild; child != nullptr; child = child->nextSibling)
     log_cat_exit(child);
 }
 
@@ -164,7 +162,7 @@ void _xbt_log_event_log(xbt_log_event_t ev, const char *fmt, ...)
              "Priority %d is greater than the biggest allowed value", ev->priority);
 
   while (1) {
-    xbt_log_appender_t appender = cat->appender;
+    const s_xbt_log_appender_t* appender = cat->appender;
 
     if (appender != nullptr) {
       xbt_assert(cat->layout, "No valid layout for the appender of category %s", cat->name);
@@ -177,6 +175,7 @@ void _xbt_log_event_log(xbt_log_event_t ev, const char *fmt, ...)
       va_start(ev->ap, fmt);
       done = cat->layout->do_layout(cat->layout, ev, fmt);
       va_end(ev->ap);
+      ev->buffer = nullptr; // Calm down, static analyzers, this pointer to local array wont leak out of the scope.
       if (done) {
         appender->do_append(appender, buff);
       } else {