From ae373556b71e4d4c5c2022110e7a4b00c55666a9 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Tue, 28 Aug 2018 20:58:37 -0700 Subject: systemc: Make sure children of processes are recorded as such. The process was treated as the parent of the object, but the object wasn't being installed as a child of the process. Change-Id: I6710f34734835cbeceb3d33e5e37b6f5897c5e30 Reviewed-on: https://gem5-review.googlesource.com/c/12438 Reviewed-by: Gabe Black Maintainer: Gabe Black --- src/systemc/core/object.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/systemc/core') diff --git a/src/systemc/core/object.cc b/src/systemc/core/object.cc index 1fb1d4591..b97fd900a 100644 --- a/src/systemc/core/object.cc +++ b/src/systemc/core/object.cc @@ -91,10 +91,12 @@ Object::Object(sc_core::sc_object *_sc_obj, const char *obj_name) : // We're "within" a parent module, ie we're being created while its // constructor or end_of_elaboration callback is running. parent = p->obj()->_sc_obj; - addObject(&parent->_gem5_object->children, _sc_obj); } else if (scheduler.current()) { // Our parent is the currently running process. parent = scheduler.current(); + } + if (parent) { + addObject(&parent->_gem5_object->children, _sc_obj); } else { // We're a top level object. addObject(&topLevelObjects, _sc_obj); -- cgit v1.2.3