X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5c14275ba09456406ec4b8bf1ef2ca76e18fb32e..a27340a44ca0010cef5e5134627dd7774cc911c3:/src/xbt/log.cpp diff --git a/src/xbt/log.cpp b/src/xbt/log.cpp index 0060b279a1..5b16eff25b 100644 --- a/src/xbt/log.cpp +++ b/src/xbt/log.cpp @@ -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. */ @@ -123,10 +123,8 @@ void xbt_log_init(int *argc, char **argv) } } -static void log_cat_exit(xbt_log_category_t cat) +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(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); } @@ -163,8 +161,8 @@ void _xbt_log_event_log(xbt_log_event_t ev, const char *fmt, ...) xbt_assert(static_cast(ev->priority) < sizeof(xbt_log_priority_names)/sizeof(xbt_log_priority_names[0]), "Priority %d is greater than the biggest allowed value", ev->priority); - while (1) { - xbt_log_appender_t appender = cat->appender; + while (true) { + 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,13 +175,14 @@ 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 won't leak out of the scope. if (done) { appender->do_append(appender, buff); } else { /* The static buffer was too small, use a dynamically expanded one */ ev->buffer_size = XBT_LOG_DYNAMIC_BUFFER_SIZE; ev->buffer = static_cast(xbt_malloc(ev->buffer_size)); - while (1) { + while (true) { va_start(ev->ap, fmt); done = cat->layout->do_layout(cat->layout, ev, fmt); va_end(ev->ap); @@ -340,7 +339,7 @@ void xbt_log_parent_set(xbt_log_category_t cat, xbt_log_category_t parent) cat->isThreshInherited = 1; } -static void _set_inherited_thresholds(xbt_log_category_t cat) +static void _set_inherited_thresholds(const s_xbt_log_category_t* cat) { xbt_log_category_t child = cat->firstChild; @@ -438,18 +437,15 @@ static xbt_log_setting_t _xbt_log_parse_setting(const char *control_string) static xbt_log_category_t _xbt_log_cat_searchsub(xbt_log_category_t cat, const char* name) { - xbt_log_category_t child; - xbt_log_category_t res; - XBT_DEBUG("Search '%s' into '%s' (firstChild='%s'; nextSibling='%s')", name, cat->name, (cat->firstChild ? cat->firstChild->name : "none"), (cat->nextSibling ? cat->nextSibling->name : "none")); if (strcmp(cat->name, name) == 0) return cat; - for (child = cat->firstChild; child != nullptr; child = child->nextSibling) { + for (xbt_log_category_t child = cat->firstChild; child != nullptr; child = child->nextSibling) { XBT_DEBUG("Dig into %s", child->name); - res = _xbt_log_cat_searchsub(child, name); + xbt_log_category_t res = _xbt_log_cat_searchsub(child, name); if (res) return res; } @@ -631,7 +627,7 @@ static void xbt_log_help_categories_rec(xbt_log_category_t category, const std:: cats.push_back(cat); std::sort(begin(cats), end(cats), - [](xbt_log_category_t a, xbt_log_category_t b) { return strcmp(a->name, b->name) < 0; }); + [](const s_xbt_log_category_t* a, const s_xbt_log_category_t* b) { return strcmp(a->name, b->name) < 0; }); for (auto const& cat : cats) { XBT_HELP("%s%s: %s", this_prefix.c_str(), cat->name, cat->description);