3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-05-12 02:04:44 +00:00

design: ensure all_modules outlives pass when building WITH_PYTHON

This commit is contained in:
Emil Jiří Tywoniak 2025-05-10 17:19:51 +02:00
parent 6900818105
commit 586fa033a6

View file

@ -23,11 +23,17 @@
YOSYS_NAMESPACE_BEGIN
// TODO refactor such scattered program state
std::map<std::string, RTLIL::Design*> saved_designs;
std::vector<RTLIL::Design*> pushed_designs;
struct DesignPass : public Pass {
DesignPass() : Pass("design", "save, restore and reset current design") { }
DesignPass() : Pass("design", "save, restore and reset current design") {
#ifdef WITH_PYTHON
// Ensure the index to outlive this pass so that we can free saved designs
(void)RTLIL::Module::get_all_modules();
#endif
}
~DesignPass() override {
for (auto &it : saved_designs)
delete it.second;