rose: remap reports to program offsets

This commit is contained in:
Justin Viiret
2016-04-18 14:40:58 +10:00
committed by Matthew Barr
parent f40aa6bd40
commit 611579511c
13 changed files with 252 additions and 26 deletions

View File

@@ -395,4 +395,27 @@ dstate_id_t get_sds_or_proxy(const raw_dfa &raw) {
}
}
static
void remapReportsToPrograms(flat_set<ReportID> &reports,
const ReportManager &rm) {
if (reports.empty()) {
return;
}
auto old_reports = reports;
reports.clear();
for (const ReportID &id : old_reports) {
u32 program = rm.getProgramOffset(id);
reports.insert(program);
}
}
void remapReportsToPrograms(raw_dfa &rdfa, const ReportManager &rm) {
DEBUG_PRINTF("remap dfa reports\n");
for (auto &ds : rdfa.states) {
remapReportsToPrograms(ds.reports, rm);
remapReportsToPrograms(ds.reports_eod, rm);
}
}
} // namespace ue2