diff --git a/doc/ApiChanges.txt b/doc/ApiChanges.txt index aa20adff..6353d976 100644 --- a/doc/ApiChanges.txt +++ b/doc/ApiChanges.txt @@ -16,6 +16,29 @@ This file summarizes STA API changes for each release. +The following iterator functions are deprecated: + + TimingArcSet::timingArcIterator() + Sdc::clockIterator() + +Use the iterator class constructor instead. This avoids new/deletes of +the iterators by stack allocating them. For example, +Instead of + + TimingArcSetArcIterator *arc_iter = arc_set->timingArcIterator(); + while (arc_iter->hasNext()) { + TimingArc *arc = arc_iter->next(); + } + delete arc_iter; + +use the following: + + TimingArcSetArcIterator arc_iter(arc_set); + while (arc_iter.hasNext()) { + TimingArc *arc = arc_iter.next(); + } + + Release 2.0.17 2019/11/11 ------------------------- diff --git a/liberty/TimingArc.hh b/liberty/TimingArc.hh index 7bf129a7..30774369 100644 --- a/liberty/TimingArc.hh +++ b/liberty/TimingArc.hh @@ -159,7 +159,8 @@ public: TimingArc *&arc1, TimingArc *&arc2); const TimingArcSeq &arcs() const { return arcs_; } - TimingArcSetArcIterator *timingArcIterator(); + // Use the TimingArcSetArcIterator(arc_set) constructor instead. + TimingArcSetArcIterator *timingArcIterator() __attribute__ ((deprecated)); TimingArcIndex addTimingArc(TimingArc *arc); void deleteTimingArc(TimingArc *arc); TimingArc *findTimingArc(unsigned arc_index); diff --git a/sdc/Sdc.hh b/sdc/Sdc.hh index 4fa9cd89..c5d7aae2 100644 --- a/sdc/Sdc.hh +++ b/sdc/Sdc.hh @@ -833,7 +833,7 @@ public: // Find the clocks defined for pin. ClockSet *findClocks(const Pin *pin) const; ClockSet *findLeafPinClocks(const Pin *pin) const; - ClockIterator *clockIterator(); + ClockIterator *clockIterator() __attribute__ ((deprecated)); void sortedClocks(ClockSeq &clks); ClockSeq *clocks() { return &clocks_; } ClockSeq &clks() { return clocks_; }