diff --git a/include/sta/NullParasitics.hh b/include/sta/NullParasitics.hh index 5e49ae6c..21331cb1 100644 --- a/include/sta/NullParasitics.hh +++ b/include/sta/NullParasitics.hh @@ -101,8 +101,8 @@ public: makeParasiticNetwork(const Net *net, bool pin_cap_included, const ParasiticAnalysisPt *ap); - virtual ParasiticDeviceIterator *deviceIterator(Parasitic *) { return nullptr; } - virtual ParasiticNodeIterator *nodeIterator(Parasitic *) { return nullptr; } + virtual ParasiticDeviceIterator *deviceIterator(const Parasitic *) { return nullptr; } + virtual ParasiticNodeIterator *nodeIterator(const Parasitic *) { return nullptr; } virtual bool includesPinCaps(const Parasitic *parasitic) const; virtual void deleteParasiticNetwork(const Net *net, const ParasiticAnalysisPt *ap); diff --git a/include/sta/Parasitics.hh b/include/sta/Parasitics.hh index 8a40a2d7..f7dca806 100644 --- a/include/sta/Parasitics.hh +++ b/include/sta/Parasitics.hh @@ -153,8 +153,8 @@ public: virtual Parasitic *makeParasiticNetwork(const Net *net, bool includes_pin_caps, const ParasiticAnalysisPt *ap) = 0; - virtual ParasiticDeviceIterator *deviceIterator(Parasitic *parasitic) = 0; - virtual ParasiticNodeIterator *nodeIterator(Parasitic *parasitic) = 0; + virtual ParasiticDeviceIterator *deviceIterator(const Parasitic *parasitic) = 0; + virtual ParasiticNodeIterator *nodeIterator(const Parasitic *parasitic) = 0; // Delete parasitic network if it exists. virtual void deleteParasiticNetwork(const Net *net, const ParasiticAnalysisPt *ap) = 0; diff --git a/parasitics/ConcreteParasitics.cc b/parasitics/ConcreteParasitics.cc index 39b40993..2ab1086a 100644 --- a/parasitics/ConcreteParasitics.cc +++ b/parasitics/ConcreteParasitics.cc @@ -131,13 +131,13 @@ ConcreteParasitic::setPoleResidue(const Pin *, } ParasiticDeviceIterator * -ConcreteParasitic::deviceIterator() +ConcreteParasitic::deviceIterator() const { return nullptr; } ParasiticNodeIterator * -ConcreteParasitic::nodeIterator() +ConcreteParasitic::nodeIterator() const { return nullptr; } @@ -688,15 +688,15 @@ ConcreteParasiticNetwork::deleteDevices() } ParasiticNodeIterator * -ConcreteParasiticNetwork::nodeIterator() +ConcreteParasiticNetwork::nodeIterator() const { ConcreteParasiticNodeSeq *nodes = new ConcreteParasiticNodeSeq(); - ConcreteParasiticPinNodeMap::Iterator node_iter2(pin_nodes_); + ConcreteParasiticPinNodeMap::ConstIterator node_iter2(pin_nodes_); while (node_iter2.hasNext()) { ConcreteParasiticPinNode *node = node_iter2.next(); nodes->push_back(node); } - ConcreteParasiticSubNodeMap::Iterator node_iter1(sub_nodes_); + ConcreteParasiticSubNodeMap::ConstIterator node_iter1(sub_nodes_); while (node_iter1.hasNext()) { ConcreteParasiticSubNode *node = node_iter1.next(); nodes->push_back(node); @@ -705,7 +705,7 @@ ConcreteParasiticNetwork::nodeIterator() } ParasiticDeviceIterator * -ConcreteParasiticNetwork::deviceIterator() +ConcreteParasiticNetwork::deviceIterator() const { ConcreteParasiticDeviceSet *devices1 = new ConcreteParasiticDeviceSet(); devices(devices1); @@ -713,11 +713,11 @@ ConcreteParasiticNetwork::deviceIterator() } void -ConcreteParasiticNetwork::devices(ConcreteParasiticDeviceSet *devices) +ConcreteParasiticNetwork::devices(ConcreteParasiticDeviceSet *devices) const { // Collect devices into a set so they are only deleted once // because multiple sub-nodes or pin nodes can refer to them. - ConcreteParasiticSubNodeMap::Iterator node_iter1(sub_nodes_); + ConcreteParasiticSubNodeMap::ConstIterator node_iter1(sub_nodes_); while (node_iter1.hasNext()) { ConcreteParasiticSubNode *node = node_iter1.next(); ConcreteParasiticDeviceSeq::Iterator device_iter(node->devices()); @@ -727,10 +727,10 @@ ConcreteParasiticNetwork::devices(ConcreteParasiticDeviceSet *devices) } } - ConcreteParasiticPinNodeMap::Iterator node_iter2(pin_nodes_); + ConcreteParasiticPinNodeMap::ConstIterator node_iter2(pin_nodes_); while (node_iter2.hasNext()) { ConcreteParasiticPinNode *node = node_iter2.next(); - ConcreteParasiticDeviceSeq::Iterator device_iter(node->devices()); + ConcreteParasiticDeviceSeq::ConstIterator device_iter(node->devices()); while (device_iter.hasNext()) { ConcreteParasiticDevice *device = device_iter.next(); devices->insert(device); @@ -1468,16 +1468,16 @@ ConcreteParasitics::makeResistor(const char *name, } ParasiticDeviceIterator * -ConcreteParasitics::deviceIterator(Parasitic *parasitic) +ConcreteParasitics::deviceIterator(const Parasitic *parasitic) { - ConcreteParasitic *cparasitic = static_cast(parasitic); + const ConcreteParasitic *cparasitic = static_cast(parasitic); return cparasitic->deviceIterator(); } ParasiticNodeIterator * -ConcreteParasitics::nodeIterator(Parasitic *parasitic) +ConcreteParasitics::nodeIterator(const Parasitic *parasitic) { - ConcreteParasitic *cparasitic = static_cast(parasitic); + const ConcreteParasitic *cparasitic = static_cast(parasitic); return cparasitic->nodeIterator(); } diff --git a/parasitics/ConcreteParasitics.hh b/parasitics/ConcreteParasitics.hh index 45436cb6..c4323c34 100644 --- a/parasitics/ConcreteParasitics.hh +++ b/parasitics/ConcreteParasitics.hh @@ -142,8 +142,8 @@ public: virtual void makeResistor(const char *name, ParasiticNode *node1, ParasiticNode *node2, float res, const ParasiticAnalysisPt *ap); - virtual ParasiticDeviceIterator *deviceIterator(Parasitic *parasitic); - virtual ParasiticNodeIterator *nodeIterator(Parasitic *parasitic); + virtual ParasiticDeviceIterator *deviceIterator(const Parasitic *parasitic); + virtual ParasiticNodeIterator *nodeIterator(const Parasitic *parasitic); virtual const char *name(const ParasiticNode *node); virtual const Pin *connectionPin(const ParasiticNode *node) const; diff --git a/parasitics/ConcreteParasiticsPvt.hh b/parasitics/ConcreteParasiticsPvt.hh index 93b3f57b..0444b0f6 100644 --- a/parasitics/ConcreteParasiticsPvt.hh +++ b/parasitics/ConcreteParasiticsPvt.hh @@ -78,8 +78,8 @@ public: virtual void setPoleResidue(const Pin *load_pin, ComplexFloatSeq *poles, ComplexFloatSeq *residues); - virtual ParasiticDeviceIterator *deviceIterator(); - virtual ParasiticNodeIterator *nodeIterator(); + virtual ParasiticDeviceIterator *deviceIterator() const; + virtual ParasiticNodeIterator *nodeIterator() const; }; // Pi model for a driver pin. @@ -414,10 +414,10 @@ public: ConcreteParasiticSubNodeMap *subNodes() { return &sub_nodes_; } void disconnectPin(const Pin *pin, const Net *net); - virtual ParasiticDeviceIterator *deviceIterator(); - virtual ParasiticNodeIterator *nodeIterator(); + virtual ParasiticDeviceIterator *deviceIterator() const; + virtual ParasiticNodeIterator *nodeIterator() const; virtual void devices(// Return value. - ConcreteParasiticDeviceSet *devices); + ConcreteParasiticDeviceSet *devices) const; private: void deleteNodes();