Properly handle nested bus absorption
This commit is contained in:
parent
2af41e87f9
commit
b99c71744f
|
@ -1346,7 +1346,7 @@ void CONNECTION_GRAPH::buildConnectionGraph()
|
||||||
|
|
||||||
for( CONNECTION_SUBGRAPH* parent : it.second )
|
for( CONNECTION_SUBGRAPH* parent : it.second )
|
||||||
{
|
{
|
||||||
if( parent->m_absorbed )
|
while( parent->m_absorbed )
|
||||||
parent = parent->m_absorbed_by;
|
parent = parent->m_absorbed_by;
|
||||||
|
|
||||||
SCH_CONNECTION* match = matchBusMember( parent->m_driver_connection, link_member );
|
SCH_CONNECTION* match = matchBusMember( parent->m_driver_connection, link_member );
|
||||||
|
@ -1372,7 +1372,7 @@ void CONNECTION_GRAPH::buildConnectionGraph()
|
||||||
|
|
||||||
for( CONNECTION_SUBGRAPH* old_sg : m_net_name_to_subgraphs_map.at( old_name ) )
|
for( CONNECTION_SUBGRAPH* old_sg : m_net_name_to_subgraphs_map.at( old_name ) )
|
||||||
{
|
{
|
||||||
if( old_sg->m_absorbed )
|
while( old_sg->m_absorbed )
|
||||||
old_sg = old_sg->m_absorbed_by;
|
old_sg = old_sg->m_absorbed_by;
|
||||||
|
|
||||||
old_sg->m_driver_connection->Clone( *conn );
|
old_sg->m_driver_connection->Clone( *conn );
|
||||||
|
@ -1530,7 +1530,7 @@ void CONNECTION_GRAPH::propagateToNeighbors( CONNECTION_SUBGRAPH* aSubgraph )
|
||||||
for( CONNECTION_SUBGRAPH* neighbor : kv.second )
|
for( CONNECTION_SUBGRAPH* neighbor : kv.second )
|
||||||
{
|
{
|
||||||
// May have been absorbed but won't have been deleted
|
// May have been absorbed but won't have been deleted
|
||||||
if( neighbor->m_absorbed )
|
while( neighbor->m_absorbed )
|
||||||
neighbor = neighbor->m_absorbed_by;
|
neighbor = neighbor->m_absorbed_by;
|
||||||
|
|
||||||
SCH_CONNECTION* parent = aParentGraph->m_driver_connection;
|
SCH_CONNECTION* parent = aParentGraph->m_driver_connection;
|
||||||
|
|
Loading…
Reference in New Issue