added destructors for wires and cells

This commit is contained in:
Benedikt Tutzer 2018-07-10 08:52:36 +02:00
parent 55df7fff19
commit e7d3f3cd46
2 changed files with 16 additions and 1 deletions

View File

@ -2223,6 +2223,13 @@ RTLIL::Wire::Wire()
#endif #endif
} }
RTLIL::Wire::~Wire()
{
#ifdef WITH_PYTHON
RTLIL::Wire::get_all_wires()->erase(hashidx_);
#endif
}
#ifdef WITH_PYTHON #ifdef WITH_PYTHON
static std::map<unsigned int, RTLIL::Wire*> *all_wires = new std::map<unsigned int, RTLIL::Wire*>(); static std::map<unsigned int, RTLIL::Wire*> *all_wires = new std::map<unsigned int, RTLIL::Wire*>();
std::map<unsigned int, RTLIL::Wire*> *RTLIL::Wire::get_all_wires(void) std::map<unsigned int, RTLIL::Wire*> *RTLIL::Wire::get_all_wires(void)
@ -2256,6 +2263,13 @@ RTLIL::Cell::Cell() : module(nullptr)
#endif #endif
} }
RTLIL::Cell::~Cell()
{
#ifdef WITH_PYTHON
RTLIL::Cell::get_all_cells()->erase(hashidx_);
#endif
}
#ifdef WITH_PYTHON #ifdef WITH_PYTHON
static std::map<unsigned int, RTLIL::Cell*> *all_cells = new std::map<unsigned int, RTLIL::Cell*>(); static std::map<unsigned int, RTLIL::Cell*> *all_cells = new std::map<unsigned int, RTLIL::Cell*>();
std::map<unsigned int, RTLIL::Cell*> *RTLIL::Cell::get_all_cells(void) std::map<unsigned int, RTLIL::Cell*> *RTLIL::Cell::get_all_cells(void)

View File

@ -1149,7 +1149,7 @@ protected:
// use module->addWire() and module->remove() to create or destroy wires // use module->addWire() and module->remove() to create or destroy wires
friend struct RTLIL::Module; friend struct RTLIL::Module;
Wire(); Wire();
~Wire() { }; ~Wire();
public: public:
// do not simply copy wires // do not simply copy wires
@ -1186,6 +1186,7 @@ protected:
// use module->addCell() and module->remove() to create or destroy cells // use module->addCell() and module->remove() to create or destroy cells
friend struct RTLIL::Module; friend struct RTLIL::Module;
Cell(); Cell();
~Cell();
public: public:
// do not simply copy cells // do not simply copy cells