mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
fdr_confirm: remove complex confirm
This commit is contained in:
parent
44e45f727e
commit
e8c0b5685f
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015-2016, 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:
|
||||||
@ -46,7 +46,6 @@ typedef enum LitInfoFlags {
|
|||||||
NoFlags = 0,
|
NoFlags = 0,
|
||||||
Caseless = 1,
|
Caseless = 1,
|
||||||
NoRepeat = 2,
|
NoRepeat = 2,
|
||||||
ComplexConfirm = 4
|
|
||||||
} LitInfoFlags;
|
} LitInfoFlags;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -63,7 +62,6 @@ struct LitInfo {
|
|||||||
u8 size;
|
u8 size;
|
||||||
u8 flags; /* LitInfoFlags */
|
u8 flags; /* LitInfoFlags */
|
||||||
u8 next;
|
u8 next;
|
||||||
u8 extended_size;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define FDRC_FLAG_NO_CONFIRM 1
|
#define FDRC_FLAG_NO_CONFIRM 1
|
||||||
|
@ -99,12 +99,8 @@ void fillLitInfo(const vector<hwlmLiteral> &lits, vector<LitInfo> &tmpLitInfo,
|
|||||||
if (lit.noruns) {
|
if (lit.noruns) {
|
||||||
flags |= NoRepeat;
|
flags |= NoRepeat;
|
||||||
}
|
}
|
||||||
if (lit.msk.size() > lit.s.size()) {
|
|
||||||
flags |= ComplexConfirm;
|
|
||||||
info.extended_size = verify_u8(lit.msk.size());
|
|
||||||
}
|
|
||||||
info.flags = flags;
|
info.flags = flags;
|
||||||
info.size = verify_u8(lit.s.size());
|
info.size = verify_u8(max(lit.msk.size(), lit.s.size()));
|
||||||
info.groups = lit.groups;
|
info.groups = lit.groups;
|
||||||
|
|
||||||
// these are built up assuming a LE machine
|
// these are built up assuming a LE machine
|
||||||
|
@ -86,17 +86,6 @@ void confWithBit(const struct FDRConfirm *fdrc, const struct FDR_Runtime_Args *a
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(li->flags & ComplexConfirm)) {
|
|
||||||
const u8 *loc2 = buf + i - li->extended_size + 1;
|
|
||||||
if (loc2 < buf) {
|
|
||||||
u32 full_overhang = buf - loc2;
|
|
||||||
size_t len_history = a->len_history;
|
|
||||||
if (full_overhang > len_history) {
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
*last_match = li->id;
|
*last_match = li->id;
|
||||||
*control = a->cb(loc - buf, i, li->id, a->ctxt);
|
*control = a->cb(loc - buf, i, li->id, a->ctxt);
|
||||||
out:
|
out:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user