diff options
-rw-r--r-- | host/lib/utils/graph_utils.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/host/lib/utils/graph_utils.cpp b/host/lib/utils/graph_utils.cpp index f21000ccf..513f7b709 100644 --- a/host/lib/utils/graph_utils.cpp +++ b/host/lib/utils/graph_utils.cpp @@ -56,7 +56,7 @@ std::vector<graph_edge_t> get_block_chain(const rfnoc_graph::sptr graph, // If the current block is the edge's source, make the edge's // destination the current block next_found = true; - UHD_LOG_TRACE("GRAPH_UTILS", "Found next block: " + edge.dst_blockid); + UHD_LOG_TRACE("GRAPH_UTILS", " --> Found next block: " + edge.dst_blockid); block_chain.push_back(edge); current_block = (source_chain) ? edge.dst_blockid : edge.src_blockid; @@ -103,12 +103,14 @@ void connect_through_blocks(rfnoc_graph::sptr graph, || (dst_blk.to_string() == edge.dst_blockid && dst_port == edge.dst_port); }); - // If our dst_blk is in the chain already, make sure its the last element and continue if (dst_found) { + // If our dst_blk is in the chain already, make sure it's the last element + // and continue. This means we pop everything from block_chain that comes + // after our block. UHD_LOG_TRACE( "GRAPH_UTILS", "Found dst_blk (" + dst_blk.to_string() + ") in source chain"); - while (dst_blk.to_string() == block_chain.back().dst_blockid - && dst_port == block_chain.back().dst_port) { + while (dst_blk.to_string() != block_chain.back().dst_blockid + || dst_port != block_chain.back().dst_port) { UHD_LOG_TRACE("GRAPH_UTILS", boost::format( "Last block (%s:%d) doesn't match dst_blk (%s:%d); removing.") @@ -153,8 +155,9 @@ void connect_through_blocks(rfnoc_graph::sptr graph, if (has_src_to_sep_connection && has_sep_to_dst_connection) { graph->connect(src_to_sep_id, src_to_sep_port, sep_to_dst_id, sep_to_dst_port); } else if (has_src_to_sep_connection != has_sep_to_dst_connection) { - throw uhd::runtime_error( - "[graph_utils] Incomplete path. Only one SEP edge found."); + const std::string err_msg = "Incomplete path. Only one SEP edge found."; + UHD_LOG_TRACE("GRAPH_UTILS", err_msg); + throw uhd::runtime_error("[graph_utils] " + err_msg); } } |