systemc: Handle null and omitted event names.
If the simulation isn't running, these should be replaced with versions generated by sc_gen_unique_name(). Change-Id: Idd515e73ba17d3dfa866ee5509369e9c4e3fb2f5 Reviewed-on: https://gem5-review.googlesource.com/12258 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
This commit is contained in:
@@ -37,18 +37,23 @@
|
||||
#include "sim/core.hh"
|
||||
#include "systemc/core/module.hh"
|
||||
#include "systemc/core/scheduler.hh"
|
||||
#include "systemc/ext/core/sc_main.hh"
|
||||
#include "systemc/ext/core/sc_module.hh"
|
||||
|
||||
namespace sc_gem5
|
||||
{
|
||||
|
||||
Event::Event(sc_core::sc_event *_sc_event) : Event(_sc_event, "") {}
|
||||
Event::Event(sc_core::sc_event *_sc_event) : Event(_sc_event, nullptr) {}
|
||||
|
||||
Event::Event(sc_core::sc_event *_sc_event, const char *_basename) :
|
||||
_sc_event(_sc_event), _basename(_basename),
|
||||
Event::Event(sc_core::sc_event *_sc_event, const char *_basename_cstr) :
|
||||
_sc_event(_sc_event), _basename(_basename_cstr ? _basename_cstr : ""),
|
||||
delayedNotify([this]() { this->notify(); })
|
||||
{
|
||||
Module *p = currentModule();
|
||||
|
||||
if (_basename == "" && ::sc_core::sc_is_running())
|
||||
_basename = ::sc_core::sc_gen_unique_name("event");
|
||||
|
||||
if (p)
|
||||
parent = p->obj()->sc_obj();
|
||||
else if (scheduler.current())
|
||||
|
||||
Reference in New Issue
Block a user