]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
Runtime: be more careful with status bits
authorJustin Viiret <justin.viiret@intel.com>
Tue, 5 Apr 2016 03:25:39 +0000 (13:25 +1000)
committerMatthew Barr <matthew.barr@intel.com>
Wed, 20 Apr 2016 03:34:55 +0000 (13:34 +1000)
src/runtime.c

index 8a0cb9f98e9242c9edf25f9412cfd6d02dca3f5b..09c0deb68c567735a313a1840b4e34d5f1ef814e 100644 (file)
@@ -667,7 +667,7 @@ void report_eod_matches(hs_stream_t *id, hs_scratch_t *scratch,
     char *state = getMultiState(id);
     u8 status = getStreamStatus(state);
 
-    if (status == STATUS_TERMINATED || status == STATUS_EXHAUSTED) {
+    if (status & (STATUS_TERMINATED | STATUS_EXHAUSTED)) {
         DEBUG_PRINTF("stream is broken, just freeing storage\n");
         return;
     }
@@ -802,7 +802,7 @@ void rawStreamExec(struct hs_stream *stream_state, struct hs_scratch *scratch) {
     if (!told_to_stop_matching(scratch) &&
         isAllExhausted(rose, scratch->core_info.exhaustionVector)) {
         DEBUG_PRINTF("stream exhausted\n");
-        scratch->core_info.status = STATUS_EXHAUSTED;
+        scratch->core_info.status |= STATUS_EXHAUSTED;
     }
 }