diff --git a/src/nfa/mcsheng_compile.cpp b/src/nfa/mcsheng_compile.cpp index 666c3b1d..bc12cc5c 100644 --- a/src/nfa/mcsheng_compile.cpp +++ b/src/nfa/mcsheng_compile.cpp @@ -242,77 +242,6 @@ void populateBasicInfo(size_t state_size, const dfa_info &info, } } -namespace { - -struct raw_report_list { - flat_set reports; - - raw_report_list(const flat_set &reports_in, - const ReportManager &rm, bool do_remap) { - if (do_remap) { - for (auto &id : reports_in) { - reports.insert(rm.getProgramOffset(id)); - } - } else { - reports = reports_in; - } - } - - bool operator<(const raw_report_list &b) const { - return reports < b.reports; - } -}; - -struct raw_report_info_impl : public raw_report_info { - vector rl; - u32 getReportListSize() const override; - size_t size() const override; - void fillReportLists(NFA *n, size_t base_offset, - std::vector &ro /* out */) const override; -}; -} - -u32 raw_report_info_impl::getReportListSize() const { - u32 rv = 0; - - for (const auto &reps : rl) { - rv += sizeof(report_list); - rv += sizeof(ReportID) * reps.reports.size(); - } - - return rv; -} - -size_t raw_report_info_impl::size() const { - return rl.size(); -} - -void raw_report_info_impl::fillReportLists(NFA *n, size_t base_offset, - vector &ro) const { - for (const auto &reps : rl) { - ro.push_back(base_offset); - - report_list *p = (report_list *)((char *)n + base_offset); - - u32 i = 0; - for (const ReportID report : reps.reports) { - p->report[i++] = report; - } - p->count = verify_u32(reps.reports.size()); - - base_offset += sizeof(report_list); - base_offset += sizeof(ReportID) * reps.reports.size(); - } -} - -static -void fillAccelOut(const map &accel_escape_info, - set *accel_states) { - for (dstate_id_t i : accel_escape_info | map_keys) { - accel_states->insert(i); - } -} - static size_t calcShermanRegionSize(const dfa_info &info) { size_t rv = 0; @@ -1089,8 +1018,7 @@ aligned_unique_ptr mcshengCompile8(dfa_info &info, dstate_id_t sheng_end, } aligned_unique_ptr mcshengCompile(raw_dfa &raw, const CompileContext &cc, - const ReportManager &rm, - set *accel_states) { + const ReportManager &rm) { if (!cc.grey.allowMcSheng) { return nullptr; } @@ -1129,10 +1057,6 @@ aligned_unique_ptr mcshengCompile(raw_dfa &raw, const CompileContext &cc, nfa->flags |= NFA_ACCEPTS_EOD; } - if (accel_states) { - fillAccelOut(accel_escape_info, accel_states); - } - DEBUG_PRINTF("compile done\n"); return nfa; } diff --git a/src/nfa/mcsheng_compile.h b/src/nfa/mcsheng_compile.h index 24cc66e9..d1ae1e32 100644 --- a/src/nfa/mcsheng_compile.h +++ b/src/nfa/mcsheng_compile.h @@ -36,7 +36,6 @@ #include "util/ue2_containers.h" #include -#include struct NFA; @@ -45,12 +44,9 @@ namespace ue2 { class ReportManager; struct CompileContext; -/* accel_states: (optional) on success, is filled with the set of accelerable - * states */ ue2::aligned_unique_ptr mcshengCompile(raw_dfa &raw, const CompileContext &cc, - const ReportManager &rm, - std::set *accel_states = nullptr); + const ReportManager &rm); bool has_accel_mcsheng(const NFA *nfa);