smallwrite_build: use bytecode_ptr

This commit is contained in:
Justin Viiret 2017-03-20 16:30:08 +11:00 committed by Matthew Barr
parent 7288da22bd
commit a5ed9a9330
3 changed files with 8 additions and 6 deletions

View File

@ -5606,7 +5606,7 @@ aligned_unique_ptr<RoseEngine> addSmallWriteEngine(const RoseBuildImpl &build,
}
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);
const size_t smwrOffset = ROUNDUP_CL(mainSize);

View File

@ -46,6 +46,7 @@
#include "nfagraph/ng_util.h"
#include "smallwrite/smallwrite_internal.h"
#include "util/alloc.h"
#include "util/bytecode_ptr.h"
#include "util/charreach.h"
#include "util/compile_context.h"
#include "util/container.h"
@ -74,7 +75,7 @@ public:
const CompileContext &cc);
// 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 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);
}
aligned_unique_ptr<SmallWriteEngine>
SmallWriteBuildImpl::build(u32 roseQuality) {
bytecode_ptr<SmallWriteEngine> SmallWriteBuildImpl::build(u32 roseQuality) {
if (!rdfa && cand_literals.empty()) {
DEBUG_PRINTF("no smallwrite engine\n");
poisoned = true;
@ -505,7 +505,7 @@ SmallWriteBuildImpl::build(u32 roseQuality) {
}
u32 size = sizeof(SmallWriteEngine) + nfa->length;
auto smwr = aligned_zmalloc_unique<SmallWriteEngine>(size);
auto smwr = make_bytecode_ptr<SmallWriteEngine>(size);
smwr->size = size;
smwr->start_offset = start_offset;

View File

@ -37,8 +37,10 @@
#include "ue2common.h"
#include "util/alloc.h"
#include "util/bytecode_ptr.h"
#include "util/noncopyable.h"
#include <memory>
#include <set>
struct SmallWriteEngine;
@ -59,7 +61,7 @@ public:
virtual ~SmallWriteBuild();
// 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 ue2_literal &literal, ReportID r) = 0;