From: Gabe Black Date: Wed, 7 Nov 2018 06:54:45 +0000 (-0800) Subject: systemc: Stop using python init to set up predefined message ids. X-Git-Tag: v19.0.0.0~1417 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=296402abdfac1bcab998cb8613d14e65e671ddda;p=gem5.git systemc: Stop using python init to set up predefined message ids. We can now be sure register_id will work even mid static initializers, so we don't have to use python initialization as a hook to install these predefined message ids. Change-Id: I2e4d0c678ddda0a9ce5b114bdf1710f36e955f23 Reviewed-on: https://gem5-review.googlesource.com/c/13976 Maintainer: Gabe Black Reviewed-by: Jason Lowe-Power --- diff --git a/src/systemc/utils/report.cc b/src/systemc/utils/report.cc index 4a4521582..823558426 100644 --- a/src/systemc/utils/report.cc +++ b/src/systemc/utils/report.cc @@ -29,8 +29,6 @@ #include "systemc/utils/report.hh" -#include "systemc/core/python.hh" - namespace sc_gem5 { @@ -76,42 +74,11 @@ std::unique_ptr globalReportCache; bool reportWarningsAsErrors = false; -DefaultReportMessages *& -DefaultReportMessages::top() -{ - static DefaultReportMessages *top_ptr = nullptr; - return top_ptr; -} - -void -DefaultReportMessages::install() +DefaultReportMessages::DefaultReportMessages( + std::initializer_list> msgs) { for (auto &p: msgs) sc_core::sc_report::register_id(p.first, p.second); } -DefaultReportMessages::DefaultReportMessages( - std::initializer_list> msgs) : - next(top()), msgs(msgs) -{ - top() = this; -} - -void -DefaultReportMessages::installAll() -{ - for (DefaultReportMessages *ptr = top(); ptr; ptr = ptr->next) - ptr->install(); -} - -namespace -{ - -struct InstallDefaultReportMessages : public PythonReadyFunc -{ - void run() override { DefaultReportMessages::installAll(); } -} messageInstaller; - -} // anonymous namespace - } // namespace sc_gem5 diff --git a/src/systemc/utils/report.hh b/src/systemc/utils/report.hh index 70716cb91..ab94b1cc4 100644 --- a/src/systemc/utils/report.hh +++ b/src/systemc/utils/report.hh @@ -111,17 +111,8 @@ extern bool reportWarningsAsErrors; struct DefaultReportMessages { - protected: - static DefaultReportMessages *&top(); - DefaultReportMessages *next; - - std::initializer_list> msgs; - void install(); - public: DefaultReportMessages(std::initializer_list>); - - static void installAll(); }; } // namespace sc_gem5