mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
noodle_build: use bytecode_ptr
This commit is contained in:
parent
e90ad34f67
commit
9996283112
@ -143,7 +143,7 @@ aligned_unique_ptr<HWLM> hwlmBuild(const vector<hwlmLiteral> &lits,
|
|||||||
const hwlmLiteral &lit = lits.front();
|
const hwlmLiteral &lit = lits.front();
|
||||||
auto noodle = noodBuildTable(lit);
|
auto noodle = noodBuildTable(lit);
|
||||||
if (noodle) {
|
if (noodle) {
|
||||||
engSize = noodSize(noodle.get());
|
engSize = noodle.size();
|
||||||
}
|
}
|
||||||
eng = move(noodle);
|
eng = move(noodle);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015, Intel Corporation
|
* Copyright (c) 2015-2017, Intel Corporation
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
@ -35,7 +35,6 @@
|
|||||||
|
|
||||||
#include "hwlm_literal.h"
|
#include "hwlm_literal.h"
|
||||||
#include "noodle_internal.h"
|
#include "noodle_internal.h"
|
||||||
#include "util/alloc.h"
|
|
||||||
#include "util/compare.h"
|
#include "util/compare.h"
|
||||||
#include "util/verify_types.h"
|
#include "util/verify_types.h"
|
||||||
#include "ue2common.h"
|
#include "ue2common.h"
|
||||||
@ -67,7 +66,7 @@ size_t findNoodFragOffset(const hwlmLiteral &lit) {
|
|||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
aligned_unique_ptr<noodTable> noodBuildTable(const hwlmLiteral &lit) {
|
bytecode_ptr<noodTable> noodBuildTable(const hwlmLiteral &lit) {
|
||||||
if (!lit.msk.empty()) {
|
if (!lit.msk.empty()) {
|
||||||
DEBUG_PRINTF("noodle can't handle supplementary masks\n");
|
DEBUG_PRINTF("noodle can't handle supplementary masks\n");
|
||||||
return nullptr;
|
return nullptr;
|
||||||
@ -75,7 +74,7 @@ aligned_unique_ptr<noodTable> noodBuildTable(const hwlmLiteral &lit) {
|
|||||||
|
|
||||||
const auto &s = lit.s;
|
const auto &s = lit.s;
|
||||||
size_t noodle_len = sizeof(noodTable) + s.length();
|
size_t noodle_len = sizeof(noodTable) + s.length();
|
||||||
auto n = aligned_zmalloc_unique<noodTable>(noodle_len);
|
auto n = make_bytecode_ptr<noodTable>(noodle_len);
|
||||||
assert(n);
|
assert(n);
|
||||||
|
|
||||||
size_t key_offset = findNoodFragOffset(lit);
|
size_t key_offset = findNoodFragOffset(lit);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015, Intel Corporation
|
* Copyright (c) 2015-2017, Intel Corporation
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
@ -30,11 +30,11 @@
|
|||||||
* \brief Noodle literal matcher: build code.
|
* \brief Noodle literal matcher: build code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef NOODLE_BUILD_H_048A1A6D585A9A
|
#ifndef NOODLE_BUILD_H
|
||||||
#define NOODLE_BUILD_H_048A1A6D585A9A
|
#define NOODLE_BUILD_H
|
||||||
|
|
||||||
#include "ue2common.h"
|
#include "ue2common.h"
|
||||||
#include "util/alloc.h"
|
#include "util/bytecode_ptr.h"
|
||||||
|
|
||||||
struct noodTable;
|
struct noodTable;
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ namespace ue2 {
|
|||||||
struct hwlmLiteral;
|
struct hwlmLiteral;
|
||||||
|
|
||||||
/** \brief Construct a Noodle matcher for the given literal. */
|
/** \brief Construct a Noodle matcher for the given literal. */
|
||||||
ue2::aligned_unique_ptr<noodTable> noodBuildTable(const hwlmLiteral &lit);
|
bytecode_ptr<noodTable> noodBuildTable(const hwlmLiteral &lit);
|
||||||
|
|
||||||
size_t noodSize(const noodTable *n);
|
size_t noodSize(const noodTable *n);
|
||||||
|
|
||||||
@ -61,5 +61,5 @@ void noodPrintStats(const noodTable *n, FILE *f);
|
|||||||
|
|
||||||
#endif // DUMP_SUPPORT
|
#endif // DUMP_SUPPORT
|
||||||
|
|
||||||
#endif /* NOODLE_BUILD_H_048A1A6D585A9A */
|
#endif /* NOODLE_BUILD_H */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user