From fc272868b895d3a8ef092376b5ce0fe4a1d14116 Mon Sep 17 00:00:00 2001 From: gtsoul-tech Date: Mon, 13 May 2024 13:04:57 +0300 Subject: [PATCH] fixes left_id and suffix_id --- src/rose/rose_build_misc.cpp | 2 +- src/rose/rose_build_program.cpp | 4 ++-- src/rose/rose_build_role_aliasing.cpp | 16 ++++++++-------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/rose/rose_build_misc.cpp b/src/rose/rose_build_misc.cpp index d0c63027..895f42da 100644 --- a/src/rose/rose_build_misc.cpp +++ b/src/rose/rose_build_misc.cpp @@ -505,7 +505,7 @@ bool operator<(const RoseEdgeProps &a, const RoseEdgeProps &b) { #ifndef NDEBUG bool roseHasTops(const RoseBuildImpl &build, RoseVertex v) { const RoseGraph &g = build.g; - assert(g[v].left); + assert(left_id(g[v].left)); set graph_tops; if (!build.isRootSuccessor(v)) { diff --git a/src/rose/rose_build_program.cpp b/src/rose/rose_build_program.cpp index ab18770d..9459836d 100644 --- a/src/rose/rose_build_program.cpp +++ b/src/rose/rose_build_program.cpp @@ -1918,7 +1918,7 @@ void makeRoleSuffix(const RoseBuildImpl &build, if (!g[v].suffix) { return; } - assert(contains(suffixes, g[v].suffix)); + assert(contains(suffixes, suffix_id(g[v].suffix))); u32 queue = suffixes.at(suffix_id(g[v].suffix)); u32 event; assert(contains(engine_info_by_queue, queue)); @@ -1991,7 +1991,7 @@ void makeRoleInfixTriggers(const RoseBuildImpl &build, make_pair(g[v].index, g[e].rose_top)); assert(top < MQE_INVALID); } else if (!isMultiTopType(eng_info.type)) { - assert(num_tops(g[v].left) == 1); + assert(num_tops(left_id(g[v].left)) == 1); top = MQE_TOP; } else { top = MQE_TOP_FIRST + g[e].rose_top; diff --git a/src/rose/rose_build_role_aliasing.cpp b/src/rose/rose_build_role_aliasing.cpp index 75bb7e88..8dedf136 100644 --- a/src/rose/rose_build_role_aliasing.cpp +++ b/src/rose/rose_build_role_aliasing.cpp @@ -1290,7 +1290,7 @@ bool attemptRoseGraphMerge(RoseBuildImpl &build, bool preds_same, RoseVertex a, ReportID new_report = build.getNewNfaReport(); duplicateReport(*b_h, b_left.leftfix_report, new_report); b_left.leftfix_report = new_report; - pruneReportIfUnused(build, b_h, rai.rev_leftfix[b_left_id], b_oldreport); + pruneReportIfUnused(build, b_h, rai.rev_leftfix[left_id(b_left_id)], b_oldreport); NGHolder victim; cloneHolder(victim, *a_h); @@ -1326,16 +1326,16 @@ bool attemptRoseGraphMerge(RoseBuildImpl &build, bool preds_same, RoseVertex a, a_left.graph = b_h; a_left.leftfix_report = new_report; - assert(contains(rai.rev_leftfix[a_left_id], a)); - assert(contains(rai.rev_leftfix[b_left_id], b)); - rai.rev_leftfix[a_left_id].erase(a); - rai.rev_leftfix[b_left_id].insert(a); + assert(contains(rai.rev_leftfix[left_id(a_left_id)], a)); + assert(contains(rai.rev_leftfix[left_id(b_left_id)], b)); + rai.rev_leftfix[left_id(a_left_id)].erase(a); + rai.rev_leftfix[left_id(b_left_id)].insert(a); - pruneUnusedTops(*a_h, g, rai.rev_leftfix[a_left_id]); - pruneUnusedTops(*b_h, g, rai.rev_leftfix[b_left_id]); + pruneUnusedTops(*a_h, g, rai.rev_leftfix[left_id(a_left_id)]); + pruneUnusedTops(*b_h, g, rai.rev_leftfix[left_id(b_left_id)]); // Prune A's report from its old prefix if it was only used by A. - pruneReportIfUnused(build, a_h, rai.rev_leftfix[a_left_id], a_oldreport); + pruneReportIfUnused(build, a_h, rai.rev_leftfix[left_id(a_left_id)], a_oldreport); reduceImplementableGraph(*b_h, SOM_NONE, nullptr, build.cc);