31a32
> #include <cassert>
36c37
< namespace SystemC
---
> namespace sc_gem5
42a44
> Module *_new_module;
44,45d45
< Module *_top_module = nullptr;
<
47a48,53
> Module::Module(const char *name) : _name(name), _sc_mod(nullptr), _obj(nullptr)
> {
> panic_if(_new_module, "Previous module not finished.\n");
> _new_module = this;
> }
>
49c55
< Module::push()
---
> Module::finish(Object *this_obj)
51,52c57,58
< if (!_top_module)
< _top_module = this;
---
> assert(!_obj);
> _obj = this_obj;
53a60
> _new_module = nullptr;
59c66
< panic_if(_modules.size(), "Popping from empty module list.\n");
---
> panic_if(!_modules.size(), "Popping from empty module list.\n");
61a69,70
> panic_if(_new_module, "Pop with unfinished module.\n");
> _modules.pop_back();
65c74
< topModule()
---
> currentModule()
67c76,78
< return _top_module;
---
> if (_modules.empty())
> return nullptr;
> return _modules.back();
70c81,87
< } // namespace SystemC
---
> Module *
> newModule()
> {
> return _new_module;
> }
>
> } // namespace sc_gem5