Rose: be more precise with CATCHUP instruction

- Fix bugs introduced by recent addition of the boundary program. It's
  not safe to do catchup there.
- Only do catchup once per report set, when necessary.
This commit is contained in:
Justin Viiret
2016-03-04 13:54:30 +11:00
committed by Matthew Barr
parent e466e67b79
commit ff7e101757
2 changed files with 42 additions and 9 deletions

View File

@@ -599,6 +599,12 @@ int roseRunBoundaryProgram(const struct RoseEngine *rose, u32 program,
scratch->deduper.som_log_dirty = 0;
}
// Keep assertions in program report path happy. At offset zero, there can
// have been no earlier reports. At EOD, all earlier reports should have
// been handled and we will have been caught up to the stream offset by the
// time we are running boundary report programs.
scratch->tctxt.minMatchOffset = stream_offset;
const size_t match_len = 0;
const char in_anchored = 0;
hwlmcb_rv_t rv = roseRunProgram(rose, scratch, program, stream_offset,