summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-11-06 22:54:45 -0800
committerGabe Black <gabeblack@google.com>2018-11-09 01:25:54 +0000
commit296402abdfac1bcab998cb8613d14e65e671ddda (patch)
tree7a9ce75c6dd04f04952c0bcd1df63f6ba2289e8d
parent1c110fafffdf82034e34146f90729ad92865238d (diff)
downloadgem5-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>
-rw-r--r--src/systemc/utils/report.cc37
-rw-r--r--src/systemc/utils/report.hh9
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