From 14893099ed806c7b2189ccb06ae330c08e6db18e Mon Sep 17 00:00:00 2001 From: James Cherry Date: Tue, 2 Dec 2025 14:29:55 -0800 Subject: [PATCH] replace_cell w/spef memory issue Signed-off-by: James Cherry --- include/sta/Parasitics.hh | 1 + network/ConcreteNetwork.cc | 1 - parasitics/ConcreteParasitics.cc | 11 ++++++++++- parasitics/ConcreteParasitics.hh | 1 + 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/sta/Parasitics.hh b/include/sta/Parasitics.hh index 18a64da6..948843f2 100644 --- a/include/sta/Parasitics.hh +++ b/include/sta/Parasitics.hh @@ -276,6 +276,7 @@ public: // Network edit before/after methods. virtual void disconnectPinBefore(const Pin *pin, const Network *network) = 0; + virtual void deletePinBefore(const Pin *pin) = 0; virtual void loadPinCapacitanceChanged(const Pin *pin) = 0; protected: diff --git a/network/ConcreteNetwork.cc b/network/ConcreteNetwork.cc index 2c6cc63c..d165e9f3 100644 --- a/network/ConcreteNetwork.cc +++ b/network/ConcreteNetwork.cc @@ -1286,7 +1286,6 @@ ConcreteNetwork::replaceCell(Instance *inst, if (cport) { rpins[cport->pinIndex()] = cpin; cpin->port_ = cport; - cpin->id_ = ConcreteNetwork::nextObjectId(); } } } diff --git a/parasitics/ConcreteParasitics.cc b/parasitics/ConcreteParasitics.cc index f36a5470..9d7f5844 100644 --- a/parasitics/ConcreteParasitics.cc +++ b/parasitics/ConcreteParasitics.cc @@ -721,11 +721,13 @@ ConcreteParasiticNetwork::disconnectPin(const Pin *pin, ccapacitor->replaceNode(node, subnode); } - pin_nodes_.erase(pin); + pin_nodes_.erase(pin_node); delete node; } } +//////////////////////////////////////////////////////////////// + NetIdPairLess::NetIdPairLess(const Network *network) : net_less_(network) { @@ -893,6 +895,13 @@ ConcreteParasitics::disconnectPinBefore(const Pin *pin, } } +void +ConcreteParasitics::deletePinBefore(const Pin *pin) +{ + // Actions are the same. + disconnectPinBefore(pin, network_); +} + void ConcreteParasitics::loadPinCapacitanceChanged(const Pin *pin) { diff --git a/parasitics/ConcreteParasitics.hh b/parasitics/ConcreteParasitics.hh index ae0f9bc9..9a06058d 100644 --- a/parasitics/ConcreteParasitics.hh +++ b/parasitics/ConcreteParasitics.hh @@ -173,6 +173,7 @@ public: void disconnectPinBefore(const Pin *pin, const Network *network) override; + void deletePinBefore(const Pin *pin) override; void loadPinCapacitanceChanged(const Pin *pin) override; void deleteReducedParasitics(const Net *net,