mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
eod: tidy up, rename to roseStreamEodExec
This commit is contained in:
parent
66e0b77aa4
commit
d5c1280b9f
@ -55,19 +55,32 @@ void initContext(const struct RoseEngine *t, u64a offset,
|
|||||||
fatbit_clear(scratch->aqa);
|
fatbit_clear(scratch->aqa);
|
||||||
}
|
}
|
||||||
|
|
||||||
static really_inline
|
void roseStreamEodExec(const struct RoseEngine *t, u64a offset,
|
||||||
void roseEodExec_i(const struct RoseEngine *t, u64a offset,
|
struct hs_scratch *scratch) {
|
||||||
struct hs_scratch *scratch, UNUSED const char is_streaming) {
|
assert(scratch);
|
||||||
assert(t);
|
assert(t->requiresEodCheck);
|
||||||
assert(scratch->core_info.buf || scratch->core_info.hbuf);
|
DEBUG_PRINTF("ci buf %p/%zu his %p/%zu\n", scratch->core_info.buf,
|
||||||
assert(!scratch->core_info.buf || !scratch->core_info.hbuf);
|
scratch->core_info.len, scratch->core_info.hbuf,
|
||||||
assert(!can_stop_matching(scratch));
|
scratch->core_info.hlen);
|
||||||
|
|
||||||
|
// We should not have been called if we've already been told to terminate
|
||||||
|
// matching.
|
||||||
|
assert(!told_to_stop_matching(scratch));
|
||||||
|
|
||||||
|
if (t->maxBiAnchoredWidth != ROSE_BOUND_INF
|
||||||
|
&& offset > t->maxBiAnchoredWidth) {
|
||||||
|
DEBUG_PRINTF("bailing, we are beyond max width\n");
|
||||||
|
/* also some of the history/state may be stale */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!t->eodProgramOffset) {
|
if (!t->eodProgramOffset) {
|
||||||
DEBUG_PRINTF("no eod program\n");
|
DEBUG_PRINTF("no eod program\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initContext(t, offset, scratch);
|
||||||
|
|
||||||
DEBUG_PRINTF("running eod program at %u\n", t->eodProgramOffset);
|
DEBUG_PRINTF("running eod program at %u\n", t->eodProgramOffset);
|
||||||
|
|
||||||
// There should be no pending delayed literals.
|
// There should be no pending delayed literals.
|
||||||
@ -85,26 +98,3 @@ void roseEodExec_i(const struct RoseEngine *t, u64a offset,
|
|||||||
roseRunProgram(t, scratch, t->eodProgramOffset, som, offset, match_len,
|
roseRunProgram(t, scratch, t->eodProgramOffset, som, offset, match_len,
|
||||||
in_anchored, in_catchup, from_mpv, skip_mpv_catchup);
|
in_anchored, in_catchup, from_mpv, skip_mpv_catchup);
|
||||||
}
|
}
|
||||||
|
|
||||||
void roseEodExec(const struct RoseEngine *t, u64a offset,
|
|
||||||
struct hs_scratch *scratch) {
|
|
||||||
assert(scratch);
|
|
||||||
assert(t->requiresEodCheck);
|
|
||||||
DEBUG_PRINTF("ci buf %p/%zu his %p/%zu\n", scratch->core_info.buf,
|
|
||||||
scratch->core_info.len, scratch->core_info.hbuf,
|
|
||||||
scratch->core_info.hlen);
|
|
||||||
|
|
||||||
// We should not have been called if we've already been told to terminate
|
|
||||||
// matching.
|
|
||||||
assert(!told_to_stop_matching(scratch));
|
|
||||||
|
|
||||||
if (t->maxBiAnchoredWidth != ROSE_BOUND_INF
|
|
||||||
&& offset > t->maxBiAnchoredWidth) {
|
|
||||||
DEBUG_PRINTF("bailing, we are beyond max width\n");
|
|
||||||
/* also some of the history/state may be stale */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
initContext(t, offset, scratch);
|
|
||||||
roseEodExec_i(t, offset, scratch, 1);
|
|
||||||
}
|
|
||||||
|
@ -43,8 +43,8 @@ void roseBlockExec(const struct RoseEngine *t, struct hs_scratch *scratch);
|
|||||||
/* assumes core_info in scratch has been init to point to data */
|
/* assumes core_info in scratch has been init to point to data */
|
||||||
void roseStreamExec(const struct RoseEngine *t, struct hs_scratch *scratch);
|
void roseStreamExec(const struct RoseEngine *t, struct hs_scratch *scratch);
|
||||||
|
|
||||||
void roseEodExec(const struct RoseEngine *t, u64a offset,
|
void roseStreamEodExec(const struct RoseEngine *t, u64a offset,
|
||||||
struct hs_scratch *scratch);
|
struct hs_scratch *scratch);
|
||||||
|
|
||||||
hwlmcb_rv_t rosePureLiteralCallback(size_t start, size_t end, u32 id,
|
hwlmcb_rv_t rosePureLiteralCallback(size_t start, size_t end, u32 id,
|
||||||
void *context);
|
void *context);
|
||||||
|
@ -532,7 +532,7 @@ void rawEodExec(hs_stream_t *id, hs_scratch_t *scratch) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
roseEodExec(rose, id->offset, scratch);
|
roseStreamEodExec(rose, id->offset, scratch);
|
||||||
}
|
}
|
||||||
|
|
||||||
static never_inline
|
static never_inline
|
||||||
|
Loading…
x
Reference in New Issue
Block a user