utils: Save detected loops with their nodes in-order

This commit is contained in:
Martin Povišer 2024-02-01 10:37:30 +01:00
parent 078b876f50
commit 6e5f40e364
1 changed files with 3 additions and 3 deletions

View File

@ -149,7 +149,7 @@ template <typename T, typename C = std::less<T>, typename OPS = hash_ops<T>> cla
std::map<T, int, C> node_to_index;
std::vector<std::set<int, IndirectCmp>> edges;
std::vector<T> sorted;
std::set<std::set<T, C>> loops;
std::set<std::vector<T>> loops;
TopoSort() : indirect_cmp(nodes)
{
@ -220,10 +220,10 @@ template <typename T, typename C = std::less<T>, typename OPS = hash_ops<T>> cla
if (active_cells[root_index]) {
found_loops = true;
if (analyze_loops) {
std::set<T, C> loop;
std::vector<T> loop;
for (int i = GetSize(active_stack) - 1; i >= 0; i--) {
const int index = active_stack[i];
loop.insert(nodes[index]);
loop.push_back(nodes[index]);
if (index == root_index)
break;
}