/**
* \brief Build the interpreter programs for each literal.
*
- * Returns the following as a tuple:
- *
- * - base of the literal program list
- * - base of the delay rebuild program list
- * - total number of literal fragments
+ * Returns the total number of literal fragments.
*/
static
-tuple<u32, u32, u32> buildLiteralPrograms(RoseBuildImpl &build,
- build_context &bc) {
+u32 buildLiteralPrograms(RoseBuildImpl &build, build_context &bc) {
// Build a reverse mapping from fragment -> final_id.
map<u32, flat_set<u32>> frag_to_final_map;
for (const auto &m : build.final_to_frag_map) {
frag.delay_program_offset = delayRebuildPrograms[frag.fragment_id];
}
- u32 litProgramsOffset =
- bc.engine_blob.add(begin(litPrograms), end(litPrograms));
- u32 delayRebuildProgramsOffset = bc.engine_blob.add(
- begin(delayRebuildPrograms), end(delayRebuildPrograms));
-
- return tuple<u32, u32, u32>{litProgramsOffset, delayRebuildProgramsOffset,
- num_fragments};
+ return num_fragments;
}
static
queue_count - leftfixBeginQueue, leftInfoTable,
&laggedRoseCount, &historyRequired);
- u32 litProgramOffset;
- u32 litDelayRebuildProgramOffset;
- u32 litProgramCount;
- tie(litProgramOffset, litDelayRebuildProgramOffset, litProgramCount) =
- buildLiteralPrograms(*this, bc);
-
+ u32 litProgramCount = buildLiteralPrograms(*this, bc);
u32 delayProgramOffset = buildDelayPrograms(*this, bc);
u32 anchoredProgramOffset = buildAnchoredPrograms(*this, bc);
engine->needsCatchup = bc.needs_catchup ? 1 : 0;
engine->literalCount = litProgramCount;
- engine->litProgramOffset = litProgramOffset;
- engine->litDelayRebuildProgramOffset = litDelayRebuildProgramOffset;
engine->reportProgramOffset = reportProgramOffset;
engine->reportProgramCount = reportProgramCount;
engine->delayProgramOffset = delayProgramOffset;
DUMP_U32(t, eodmatcherMinWidth);
DUMP_U32(t, amatcherMaxBiAnchoredWidth);
DUMP_U32(t, fmatcherMaxBiAnchoredWidth);
- DUMP_U32(t, litProgramOffset);
- DUMP_U32(t, litDelayRebuildProgramOffset);
DUMP_U32(t, reportProgramOffset);
DUMP_U32(t, reportProgramCount);
DUMP_U32(t, delayProgramOffset);
u32 fmatcherMaxBiAnchoredWidth; /**< maximum number of bytes that can still
* produce a match for a pattern involved
* with the anchored table. */
- /** \brief Offset of u32 array of program offsets for literals. */
- u32 litProgramOffset;
-
- /** \brief Offset of u32 array of delay rebuild program offsets for
- * literals. */
- u32 litDelayRebuildProgramOffset;
/**
* \brief Offset of u32 array of program offsets for reports used by