diff options
author | Gabe Black <gabeblack@google.com> | 2018-11-06 22:54:45 -0800 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-11-09 01:25:54 +0000 |
commit | 296402abdfac1bcab998cb8613d14e65e671ddda (patch) | |
tree | 7a9ce75c6dd04f04952c0bcd1df63f6ba2289e8d /src/systemc/utils | |
parent | 1c110fafffdf82034e34146f90729ad92865238d (diff) | |
download | gem5-296402abdfac1bcab998cb8613d14e65e671ddda.tar.xz |
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 <gabeblack@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src/systemc/utils')
-rw-r--r-- | src/systemc/utils/report.cc | 37 | ||||
-rw-r--r-- | src/systemc/utils/report.hh | 9 |
2 files changed, 2 insertions, 44 deletions
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<sc_core::sc_report> globalReportCache; bool reportWarningsAsErrors = false; -DefaultReportMessages *& -DefaultReportMessages::top() -{ - static DefaultReportMessages *top_ptr = nullptr; - return top_ptr; -} - -void -DefaultReportMessages::install() +DefaultReportMessages::DefaultReportMessages( + std::initializer_list<std::pair<int, const char *>> msgs) { for (auto &p: msgs) sc_core::sc_report::register_id(p.first, p.second); } -DefaultReportMessages::DefaultReportMessages( - std::initializer_list<std::pair<int, const char *>> 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<std::pair<int, const char *>> msgs; - void install(); - public: DefaultReportMessages(std::initializer_list<std::pair<int, const char *>>); - - static void installAll(); }; } // namespace sc_gem5 |