Merge branch 'develop' into wip-cppcheck271-part2

This commit is contained in:
g. economou
2024-05-17 11:08:09 +03:00
committed by GitHub
211 changed files with 3167 additions and 2125 deletions

View File

@@ -243,7 +243,7 @@ Position makeNewlineAssertPos(GlushkovBuildState &bs) {
static
void generateAccepts(GlushkovBuildStateImpl &bs, const PositionInfo &from,
vector<PositionInfo> *tolist) {
NFABuilder &builder = bs.getBuilder();
const NFABuilder &builder = bs.getBuilder();
u32 flags = from.flags;
bool require_eod = flags & POS_FLAG_WIRE_EOD;
@@ -456,11 +456,10 @@ void cleanupPositions(vector<PositionInfo> &a) {
vector<PositionInfo> out;
out.reserve(a.size()); // output should be close to input in size.
for (const auto &p : a) {
if (seen.emplace(p.pos, p.flags).second) {
out.emplace_back(p); // first encounter
}
}
auto seens = [&seen=seen](const PositionInfo &p) {
return (seen.emplace(p.pos, p.flags).second);
};
std::copy_if(begin(a), end(a), std::back_inserter(out), seens);
DEBUG_PRINTF("in %zu; out %zu\n", a.size(), out.size());
a.swap(out);