mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-10-02 04:27:42 +03:00
rose: only write out report programs if in use
These programs are only used by output-exposed engines.
This commit is contained in:
committed by
Matthew Barr
parent
4ce268af47
commit
7f49958824
@@ -74,6 +74,8 @@ public:
|
||||
void add(const NGWrapper &w) override;
|
||||
void add(const ue2_literal &literal, ReportID r) override;
|
||||
|
||||
set<ReportID> all_reports() const override;
|
||||
|
||||
bool determiniseLiterals();
|
||||
|
||||
const ReportManager &rm;
|
||||
@@ -413,6 +415,20 @@ SmallWriteBuildImpl::build(u32 roseQuality) {
|
||||
return smwr;
|
||||
}
|
||||
|
||||
set<ReportID> SmallWriteBuildImpl::all_reports() const {
|
||||
set<ReportID> reports;
|
||||
if (poisoned) {
|
||||
return reports;
|
||||
}
|
||||
if (rdfa) {
|
||||
insert(&reports, ::ue2::all_reports(*rdfa));
|
||||
}
|
||||
for (const auto &cand : cand_literals) {
|
||||
reports.insert(cand.second);
|
||||
}
|
||||
return reports;
|
||||
}
|
||||
|
||||
size_t smwrSize(const SmallWriteEngine *smwr) {
|
||||
assert(smwr);
|
||||
return smwr->size;
|
||||
|
@@ -38,6 +38,8 @@
|
||||
#include "ue2common.h"
|
||||
#include "util/alloc.h"
|
||||
|
||||
#include <set>
|
||||
|
||||
#include <boost/core/noncopyable.hpp>
|
||||
|
||||
struct SmallWriteEngine;
|
||||
@@ -61,6 +63,8 @@ public:
|
||||
|
||||
virtual void add(const NGWrapper &w) = 0;
|
||||
virtual void add(const ue2_literal &literal, ReportID r) = 0;
|
||||
|
||||
virtual std::set<ReportID> all_reports() const = 0;
|
||||
};
|
||||
|
||||
// Construct a usable SmallWrite builder.
|
||||
|
Reference in New Issue
Block a user