Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 15 additions & 4 deletions src/OpenRoad.cc
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,6 @@ OpenRoad::OpenRoad()
OpenRoad::~OpenRoad()
{
delete verilog_network_;
// Temporarily removed until a crash can be resolved
// deleteDbSta(sta_);
// sta::deleteAllMemory();
delete ioPlacer_;
delete resizer_;
delete opendp_;
Expand All @@ -140,14 +137,28 @@ OpenRoad::~OpenRoad()
delete finale_;
delete ram_gen_;
delete antenna_checker_;
odb::dbDatabase::destroy(db_);
delete partitionMgr_;
delete pdngen_;
delete icewall_;
delete distributer_;
delete stt_builder_;
delete dft_;
delete estimate_parasitics_;
// If the Python API creates and destructs multiple instances,
// not deleting the sta memory results in memory leaks. We also
// need to reinit the sta memory after deletion to make sure
// sta works for future instances as well.
sta::Sta* temp = nullptr;
if (sta_ != sta::Sta::sta()) {
temp = sta::Sta::sta();
}
sta::Sta::setSta(sta_);
sta::deleteAllMemory();
if (temp) { // reinit if this isn't the last instance
sta::initSta();
}
sta::Sta::setSta(temp);
odb::dbDatabase::destroy(db_);
delete logger_;
delete verilog_reader_;
delete callback_handler_;
Expand Down
Loading