Skip to content

Commit cd4ee33

Browse files
committed
[lib][rr_graph][storage] fix the bug in remove_nodes
1 parent 3e839fb commit cd4ee33

File tree

1 file changed

+2
-7
lines changed

1 file changed

+2
-7
lines changed

libs/librrgraph/src/base/rr_graph_storage.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,7 @@ void t_rr_graph_storage::remove_nodes(const std::vector<RRNodeId>& nodes) {
718718
// that fall between them.
719719
for (size_t i = 0; i < sorted_nodes.size(); ++i) {
720720
size_t start_rr_node_index = size_t(sorted_nodes[i]) + 1;
721-
size_t end_rr_node_index = (i == sorted_nodes.size() - 1) ? sorted_nodes.size() : size_t(sorted_nodes[i + 1]);
721+
size_t end_rr_node_index = (i == sorted_nodes.size() - 1) ? node_storage_.size() : size_t(sorted_nodes[i + 1]);
722722
for (size_t j = start_rr_node_index; j < end_rr_node_index; ++j) {
723723
RRNodeId old_node = RRNodeId(j);
724724
// New node index is equal to the old nodex index minus the number of nodes being removed before it.
@@ -764,12 +764,7 @@ void t_rr_graph_storage::remove_nodes(const std::vector<RRNodeId>& nodes) {
764764
// Node exists in sorted_nodes, mark edge for removal
765765
removed_edges.push_back(edge_id);
766766
} else {
767-
size_t node_offset;
768-
if (node_it == sorted_nodes.end()) {
769-
node_offset = sorted_nodes.size();
770-
} else {
771-
node_offset = std::distance(sorted_nodes.begin(), node_it) + 1;
772-
}
767+
size_t node_offset = std::distance(sorted_nodes.begin(), node_it);
773768
size_t new_node_index = size_t(node) - node_offset;
774769
edge_nodes[edge_id] = RRNodeId(new_node_index);
775770
}

0 commit comments

Comments
 (0)