mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
smallwrite_build: use bytecode_ptr
This commit is contained in:
parent
7288da22bd
commit
a5ed9a9330
@ -5606,7 +5606,7 @@ aligned_unique_ptr<RoseEngine> addSmallWriteEngine(const RoseBuildImpl &build,
|
|||||||
}
|
}
|
||||||
|
|
||||||
const size_t mainSize = roseSize(rose.get());
|
const size_t mainSize = roseSize(rose.get());
|
||||||
const size_t smallWriteSize = smwrSize(smwr_engine.get());
|
const size_t smallWriteSize = smwr_engine.size();
|
||||||
DEBUG_PRINTF("adding smwr engine, size=%zu\n", smallWriteSize);
|
DEBUG_PRINTF("adding smwr engine, size=%zu\n", smallWriteSize);
|
||||||
|
|
||||||
const size_t smwrOffset = ROUNDUP_CL(mainSize);
|
const size_t smwrOffset = ROUNDUP_CL(mainSize);
|
||||||
|
@ -46,6 +46,7 @@
|
|||||||
#include "nfagraph/ng_util.h"
|
#include "nfagraph/ng_util.h"
|
||||||
#include "smallwrite/smallwrite_internal.h"
|
#include "smallwrite/smallwrite_internal.h"
|
||||||
#include "util/alloc.h"
|
#include "util/alloc.h"
|
||||||
|
#include "util/bytecode_ptr.h"
|
||||||
#include "util/charreach.h"
|
#include "util/charreach.h"
|
||||||
#include "util/compile_context.h"
|
#include "util/compile_context.h"
|
||||||
#include "util/container.h"
|
#include "util/container.h"
|
||||||
@ -74,7 +75,7 @@ public:
|
|||||||
const CompileContext &cc);
|
const CompileContext &cc);
|
||||||
|
|
||||||
// Construct a runtime implementation.
|
// Construct a runtime implementation.
|
||||||
aligned_unique_ptr<SmallWriteEngine> build(u32 roseQuality) override;
|
bytecode_ptr<SmallWriteEngine> build(u32 roseQuality) override;
|
||||||
|
|
||||||
void add(const NGHolder &g, const ExpressionInfo &expr) override;
|
void add(const NGHolder &g, const ExpressionInfo &expr) override;
|
||||||
void add(const ue2_literal &literal, ReportID r) override;
|
void add(const ue2_literal &literal, ReportID r) override;
|
||||||
@ -473,8 +474,7 @@ unique_ptr<SmallWriteBuild> makeSmallWriteBuilder(size_t num_patterns,
|
|||||||
return ue2::make_unique<SmallWriteBuildImpl>(num_patterns, rm, cc);
|
return ue2::make_unique<SmallWriteBuildImpl>(num_patterns, rm, cc);
|
||||||
}
|
}
|
||||||
|
|
||||||
aligned_unique_ptr<SmallWriteEngine>
|
bytecode_ptr<SmallWriteEngine> SmallWriteBuildImpl::build(u32 roseQuality) {
|
||||||
SmallWriteBuildImpl::build(u32 roseQuality) {
|
|
||||||
if (!rdfa && cand_literals.empty()) {
|
if (!rdfa && cand_literals.empty()) {
|
||||||
DEBUG_PRINTF("no smallwrite engine\n");
|
DEBUG_PRINTF("no smallwrite engine\n");
|
||||||
poisoned = true;
|
poisoned = true;
|
||||||
@ -505,7 +505,7 @@ SmallWriteBuildImpl::build(u32 roseQuality) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
u32 size = sizeof(SmallWriteEngine) + nfa->length;
|
u32 size = sizeof(SmallWriteEngine) + nfa->length;
|
||||||
auto smwr = aligned_zmalloc_unique<SmallWriteEngine>(size);
|
auto smwr = make_bytecode_ptr<SmallWriteEngine>(size);
|
||||||
|
|
||||||
smwr->size = size;
|
smwr->size = size;
|
||||||
smwr->start_offset = start_offset;
|
smwr->start_offset = start_offset;
|
||||||
|
@ -37,8 +37,10 @@
|
|||||||
|
|
||||||
#include "ue2common.h"
|
#include "ue2common.h"
|
||||||
#include "util/alloc.h"
|
#include "util/alloc.h"
|
||||||
|
#include "util/bytecode_ptr.h"
|
||||||
#include "util/noncopyable.h"
|
#include "util/noncopyable.h"
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
#include <set>
|
#include <set>
|
||||||
|
|
||||||
struct SmallWriteEngine;
|
struct SmallWriteEngine;
|
||||||
@ -59,7 +61,7 @@ public:
|
|||||||
virtual ~SmallWriteBuild();
|
virtual ~SmallWriteBuild();
|
||||||
|
|
||||||
// Construct a runtime implementation.
|
// Construct a runtime implementation.
|
||||||
virtual ue2::aligned_unique_ptr<SmallWriteEngine> build(u32 roseQuality) = 0;
|
virtual bytecode_ptr<SmallWriteEngine> build(u32 roseQuality) = 0;
|
||||||
|
|
||||||
virtual void add(const NGHolder &g, const ExpressionInfo &expr) = 0;
|
virtual void add(const NGHolder &g, const ExpressionInfo &expr) = 0;
|
||||||
virtual void add(const ue2_literal &literal, ReportID r) = 0;
|
virtual void add(const ue2_literal &literal, ReportID r) = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user