read_sdf missing liberty seg fault

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2022-09-05 21:28:47 -07:00
parent bb50746f72
commit 5bfddf4518
1 changed files with 10 additions and 8 deletions

View File

@ -248,14 +248,16 @@ SdfReader::findWireEdge(Pin *from_pin,
{ {
Vertex *to_vertex, *to_vertex_bidirect_drvr; Vertex *to_vertex, *to_vertex_bidirect_drvr;
graph_->pinVertices(to_pin, to_vertex, to_vertex_bidirect_drvr); graph_->pinVertices(to_pin, to_vertex, to_vertex_bidirect_drvr);
// Fanin < fanout, so search for driver from load. if (to_vertex) {
VertexInEdgeIterator edge_iter(to_vertex, graph_); // Fanin < fanout, so search for driver from load.
while (edge_iter.hasNext()) { VertexInEdgeIterator edge_iter(to_vertex, graph_);
Edge *edge = edge_iter.next(); while (edge_iter.hasNext()) {
const TimingRole *edge_role = edge->role(); Edge *edge = edge_iter.next();
if (edge->from(graph_)->pin() == from_pin const TimingRole *edge_role = edge->role();
&& edge_role->sdfRole()->isWire()) if (edge->from(graph_)->pin() == from_pin
return edge; && edge_role->sdfRole()->isWire())
return edge;
}
} }
return nullptr; return nullptr;
} }