mirror of https://github.com/KLayout/klayout.git
Fixed a memory corruption issue from the Netlist destructor.
This commit is contained in:
parent
37d8f0bfca
commit
060abc056e
|
|
@ -555,11 +555,23 @@ Circuit::Circuit (const Circuit &other)
|
|||
m_net_by_name (this, &Circuit::begin_nets, &Circuit::end_nets),
|
||||
m_index (0)
|
||||
{
|
||||
operator= (other);
|
||||
m_devices.changed ().add (this, &Circuit::devices_changed);
|
||||
m_nets.changed ().add (this, &Circuit::nets_changed);
|
||||
m_subcircuits.changed ().add (this, &Circuit::subcircuits_changed);
|
||||
}
|
||||
|
||||
operator= (other);
|
||||
Circuit::~Circuit ()
|
||||
{
|
||||
m_devices.changed ().remove (this, &Circuit::devices_changed);
|
||||
m_nets.changed ().remove (this, &Circuit::nets_changed);
|
||||
m_subcircuits.changed ().remove (this, &Circuit::subcircuits_changed);
|
||||
|
||||
// the default destructor will make the nets access "this" to unregister the
|
||||
// objects - hence we have to do this explicitly.
|
||||
m_nets.clear ();
|
||||
m_subcircuits.clear ();
|
||||
m_devices.clear ();
|
||||
}
|
||||
|
||||
Circuit &Circuit::operator= (const Circuit &other)
|
||||
|
|
@ -1201,6 +1213,12 @@ Netlist::Netlist (const Netlist &other)
|
|||
m_circuits.changed ().add (this, &Netlist::circuits_changed);
|
||||
}
|
||||
|
||||
Netlist::~Netlist ()
|
||||
{
|
||||
m_circuits.changed ().remove (this, &Netlist::invalidate_topology);
|
||||
m_circuits.changed ().remove (this, &Netlist::circuits_changed);
|
||||
}
|
||||
|
||||
Netlist &Netlist::operator= (const Netlist &other)
|
||||
{
|
||||
if (this != &other) {
|
||||
|
|
|
|||
|
|
@ -1043,6 +1043,11 @@ public:
|
|||
*/
|
||||
Circuit (const Circuit &other);
|
||||
|
||||
/**
|
||||
* @brief Destructor
|
||||
*/
|
||||
~Circuit ();
|
||||
|
||||
/**
|
||||
* @brief Assignment
|
||||
*/
|
||||
|
|
@ -2005,6 +2010,11 @@ public:
|
|||
*/
|
||||
Netlist (const Netlist &other);
|
||||
|
||||
/**
|
||||
* @brief Destructor
|
||||
*/
|
||||
~Netlist ();
|
||||
|
||||
/**
|
||||
* @brief Assignment
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue