VertexVisitor::copy const

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2021-12-15 19:35:02 -07:00
parent 9da23bc4a3
commit 104f90089a
12 changed files with 22 additions and 25 deletions

View File

@ -357,7 +357,7 @@ public:
bool own_arc_delay_calc); bool own_arc_delay_calc);
virtual ~FindVertexDelays(); virtual ~FindVertexDelays();
virtual void visit(Vertex *vertex); virtual void visit(Vertex *vertex);
virtual VertexVisitor *copy(); virtual VertexVisitor *copy() const;
protected: protected:
GraphDelayCalc1 *graph_delay_calc1_; GraphDelayCalc1 *graph_delay_calc1_;
@ -382,7 +382,7 @@ FindVertexDelays::~FindVertexDelays()
} }
VertexVisitor * VertexVisitor *
FindVertexDelays::copy() FindVertexDelays::copy() const
{ {
// Copy StaState::arc_delay_calc_ because it needs separate state // Copy StaState::arc_delay_calc_ because it needs separate state
// for each thread. // for each thread.

View File

@ -704,7 +704,7 @@ public:
void init(bool always_to_endpoints, void init(bool always_to_endpoints,
SearchPred *pred); SearchPred *pred);
virtual void visit(Vertex *vertex); virtual void visit(Vertex *vertex);
virtual VertexVisitor *copy(); virtual VertexVisitor *copy() const;
// Return false to stop visiting. // Return false to stop visiting.
virtual bool visitFromToPath(const Pin *from_pin, virtual bool visitFromToPath(const Pin *from_pin,
Vertex *from_vertex, Vertex *from_vertex,
@ -770,7 +770,7 @@ class RequiredVisitor : public PathVisitor
public: public:
explicit RequiredVisitor(const StaState *sta); explicit RequiredVisitor(const StaState *sta);
virtual ~RequiredVisitor(); virtual ~RequiredVisitor();
virtual VertexVisitor *copy(); virtual VertexVisitor *copy() const;
virtual void visit(Vertex *vertex); virtual void visit(Vertex *vertex);
protected: protected:

View File

@ -28,13 +28,10 @@ class VertexVisitor
public: public:
VertexVisitor() {} VertexVisitor() {}
virtual ~VertexVisitor() {} virtual ~VertexVisitor() {}
virtual VertexVisitor *copy() = 0; virtual VertexVisitor *copy() const = 0;
virtual void visit(Vertex *vertex) = 0; virtual void visit(Vertex *vertex) = 0;
void operator()(Vertex *vertex) { visit(vertex); } void operator()(Vertex *vertex) { visit(vertex); }
virtual void levelFinished() {} virtual void levelFinished() {}
private:
DISALLOW_COPY_AND_ASSIGN(VertexVisitor);
}; };
// Collect visited pins into a PinSet. // Collect visited pins into a PinSet.
@ -44,7 +41,7 @@ public:
VertexPinCollector(PinSet *pins); VertexPinCollector(PinSet *pins);
PinSet *pins() const { return pins_; } PinSet *pins() const { return pins_; }
void visit(Vertex *vertex); void visit(Vertex *vertex);
virtual VertexVisitor *copy(); virtual VertexVisitor *copy() const;
protected: protected:
PinSet *pins_; PinSet *pins_;

View File

@ -809,7 +809,7 @@ public:
BfsFwdIterator *insert_iter, BfsFwdIterator *insert_iter,
GenclkInfo *genclk_info, GenclkInfo *genclk_info,
const StaState *sta); const StaState *sta);
virtual VertexVisitor *copy(); virtual VertexVisitor *copy() const;
virtual void visit(Vertex *vertex); virtual void visit(Vertex *vertex);
protected: protected:
@ -854,7 +854,7 @@ GenclkSrcArrivalVisitor::GenclkSrcArrivalVisitor(Clock *gclk,
} }
VertexVisitor * VertexVisitor *
GenclkSrcArrivalVisitor::copy() GenclkSrcArrivalVisitor::copy() const
{ {
return new GenclkSrcArrivalVisitor(gclk_, insert_iter_, genclk_info_, return new GenclkSrcArrivalVisitor(gclk_, insert_iter_, genclk_info_,
always_to_endpoints_, pred_, sta_); always_to_endpoints_, pred_, sta_);

View File

@ -230,7 +230,7 @@ public:
PathRef &before_div, PathRef &before_div,
bool unique_pins, bool unique_pins,
PathEnum *path_enum); PathEnum *path_enum);
virtual VertexVisitor *copy(); virtual VertexVisitor *copy() const;
virtual void visit(Vertex *) {} // Not used. virtual void visit(Vertex *) {} // Not used.
void visitFaninPathsThru(Vertex *vertex, void visitFaninPathsThru(Vertex *vertex,
Vertex *prev_vertex, Vertex *prev_vertex,
@ -307,7 +307,7 @@ PathEnumFaninVisitor::visitFaninPathsThru(Vertex *vertex,
} }
VertexVisitor * VertexVisitor *
PathEnumFaninVisitor::copy() PathEnumFaninVisitor::copy() const
{ {
return new PathEnumFaninVisitor(path_end_, before_div_, unique_pins_, return new PathEnumFaninVisitor(path_end_, before_div_, unique_pins_,
path_enum_); path_enum_);

View File

@ -845,7 +845,7 @@ public:
const MinMaxAll *min_max, const MinMaxAll *min_max,
const StaState *sta); const StaState *sta);
~MakeEndpointPathEnds(); ~MakeEndpointPathEnds();
virtual VertexVisitor *copy(); virtual VertexVisitor *copy() const;
virtual void visit(Vertex *vertex); virtual void visit(Vertex *vertex);
private: private:
@ -877,7 +877,7 @@ MakeEndpointPathEnds::~MakeEndpointPathEnds()
} }
VertexVisitor * VertexVisitor *
MakeEndpointPathEnds::copy() MakeEndpointPathEnds::copy() const
{ {
return new MakeEndpointPathEnds(path_end_visitor_, corner_, min_max_, sta_); return new MakeEndpointPathEnds(path_end_visitor_, corner_, min_max_, sta_);
} }

View File

@ -311,7 +311,7 @@ public:
PrevPathVisitor(const Path *path, PrevPathVisitor(const Path *path,
SearchPred *pred, SearchPred *pred,
const StaState *sta); const StaState *sta);
virtual VertexVisitor *copy(); virtual VertexVisitor *copy() const;
virtual void visit(Vertex *) {} virtual void visit(Vertex *) {}
virtual bool visitFromToPath(const Pin *from_pin, virtual bool visitFromToPath(const Pin *from_pin,
Vertex *from_vertex, Vertex *from_vertex,
@ -362,7 +362,7 @@ PrevPathVisitor::PrevPathVisitor(const Path *path,
} }
VertexVisitor * VertexVisitor *
PrevPathVisitor::copy() PrevPathVisitor::copy() const
{ {
return new PrevPathVisitor(path_, pred_, sta_); return new PrevPathVisitor(path_, pred_, sta_);
} }

View File

@ -269,7 +269,7 @@ public:
PropActivityVisitor(Power *power, PropActivityVisitor(Power *power,
BfsFwdIterator *bfs); BfsFwdIterator *bfs);
~PropActivityVisitor(); ~PropActivityVisitor();
virtual VertexVisitor *copy(); virtual VertexVisitor *copy() const;
virtual void visit(Vertex *vertex); virtual void visit(Vertex *vertex);
void init(); void init();
bool foundRegWithoutActivity() const; bool foundRegWithoutActivity() const;
@ -297,7 +297,7 @@ PropActivityVisitor::~PropActivityVisitor()
} }
VertexVisitor * VertexVisitor *
PropActivityVisitor::copy() PropActivityVisitor::copy() const
{ {
return new PropActivityVisitor(power_, bfs_); return new PropActivityVisitor(power_, bfs_);
} }

View File

@ -1041,7 +1041,7 @@ ArrivalVisitor::init(bool always_to_endpoints,
VertexVisitor * VertexVisitor *
ArrivalVisitor::copy() ArrivalVisitor::copy() const
{ {
return new ArrivalVisitor(always_to_endpoints_, pred_, sta_); return new ArrivalVisitor(always_to_endpoints_, pred_, sta_);
} }
@ -3398,7 +3398,7 @@ RequiredVisitor::~RequiredVisitor()
} }
VertexVisitor * VertexVisitor *
RequiredVisitor::copy() RequiredVisitor::copy() const
{ {
return new RequiredVisitor(sta_); return new RequiredVisitor(sta_);
} }

View File

@ -2637,7 +2637,7 @@ public:
EndpointCounter() : count_(0) {} EndpointCounter() : count_(0) {}
virtual void visit(Vertex *) { count_++; } virtual void visit(Vertex *) { count_++; }
int count() const { return count_; } int count() const { return count_; }
virtual EndpointCounter *copy() { return new EndpointCounter; } virtual EndpointCounter *copy() const { return new EndpointCounter; }
protected: protected:
int count_; int count_;
}; };

View File

@ -27,7 +27,7 @@ VertexPinCollector::VertexPinCollector(PinSet *pins) :
} }
VertexVisitor * VertexVisitor *
VertexPinCollector::copy() VertexPinCollector::copy() const
{ {
criticalError(266, "VertexPinCollector::copy not supported."); criticalError(266, "VertexPinCollector::copy not supported.");
return nullptr; return nullptr;

View File

@ -70,7 +70,7 @@ public:
VertexPathSetMap *matching_path_map, VertexPathSetMap *matching_path_map,
const StaState *sta); const StaState *sta);
virtual ~PathGroupPathVisitor(); virtual ~PathGroupPathVisitor();
virtual VertexVisitor *copy(); virtual VertexVisitor *copy() const;
virtual void visit(Vertex *vertex); virtual void visit(Vertex *vertex);
protected: protected:
@ -232,7 +232,7 @@ PathGroupPathVisitor::~PathGroupPathVisitor()
} }
VertexVisitor * VertexVisitor *
PathGroupPathVisitor::copy() PathGroupPathVisitor::copy() const
{ {
return new PathGroupPathVisitor(visitor_, bkwd_iter_, matching_path_map_, return new PathGroupPathVisitor(visitor_, bkwd_iter_, matching_path_map_,
sta_); sta_);