]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
raw_som_dfa: initialize members in constructor
authorAlex Coyte <a.coyte@intel.com>
Mon, 2 Nov 2015 02:35:04 +0000 (13:35 +1100)
committerMatthew Barr <matthew.barr@intel.com>
Tue, 10 Nov 2015 03:36:14 +0000 (14:36 +1100)
src/nfa/goughcompile.cpp
src/nfa/goughcompile.h
src/nfagraph/ng_haig.cpp

index 92d09aa5c5ca0475c1c8c6343caf47f635b9c6bb..d2de7b95b74ea0515bdf9b0db4f18165b2e71440 100644 (file)
@@ -1109,7 +1109,7 @@ aligned_unique_ptr<NFA> goughCompile(raw_som_dfa &raw, u8 somPrecision,
     u32 total_prog_size = byte_length(temp_blocks);
     curr_offset += total_prog_size;
 
-    gi.stream_som_loc_count =  slot_count;
+    gi.stream_som_loc_count = slot_count;
     gi.stream_som_loc_width = somPrecision;
 
     u32 gough_size = ROUNDUP_N(curr_offset, 16);
index b575c75b96a6ae28d93393dca9a296bc1b4c16a0..9da983d454b113264610e3eda4317b04a8080496 100644 (file)
@@ -70,8 +70,11 @@ struct dstate_som {
 };
 
 struct raw_som_dfa : public raw_dfa {
-    raw_som_dfa(nfa_kind k, bool unordered_som_triggers_in)
-        : raw_dfa(k), unordered_som_triggers(unordered_som_triggers_in) {
+    raw_som_dfa(nfa_kind k, bool unordered_som_triggers_in, u32 trigger,
+                u32 stream_som_loc_width_in)
+        : raw_dfa(k), stream_som_loc_width(stream_som_loc_width_in),
+        unordered_som_triggers(unordered_som_triggers_in),
+        trigger_nfa_state(trigger) {
         assert(!unordered_som_triggers || is_triggered(kind));
     }
 
index 78c615c94ff511dc04c8e40f50b46acf634ecb70..d06083bd24746d497518d2b731964bd29910983e 100644 (file)
@@ -609,7 +609,6 @@ bool doHaig(const NGHolder &g,
     }
 
     haig_note_starts(g, &rdfa->new_som_nfa_states);
-    rdfa->trigger_nfa_state = NODE_START;
 
     return true;
 }
@@ -639,7 +638,8 @@ unique_ptr<raw_som_dfa> attemptToBuildHaig(NGHolder &g, som_type som,
         return nullptr;
     }
 
-    auto rdfa = ue2::make_unique<raw_som_dfa>(g.kind, unordered_som);
+    auto rdfa = ue2::make_unique<raw_som_dfa>(g.kind, unordered_som, NODE_START,
+                                              somPrecision);
 
     DEBUG_PRINTF("determinising nfa with %u vertices\n", numStates);
     bool rv;
@@ -659,7 +659,6 @@ unique_ptr<raw_som_dfa> attemptToBuildHaig(NGHolder &g, som_type som,
 
     DEBUG_PRINTF("determinised, building impl dfa (a,f) = (%hu,%hu)\n",
                  rdfa->start_anchored, rdfa->start_floating);
-    rdfa->stream_som_loc_width = somPrecision;
 
     assert(rdfa->kind == g.kind);
     return rdfa;
@@ -783,7 +782,9 @@ unique_ptr<raw_som_dfa> attemptToMergeHaig(const vector<const raw_som_dfa *> &df
 
     typedef Automaton_Haig_Merge::StateSet StateSet;
     vector<StateSet> nfa_state_map;
-    auto rdfa = ue2::make_unique<raw_som_dfa>(dfas[0]->kind, unordered_som);
+    auto rdfa = ue2::make_unique<raw_som_dfa>(dfas[0]->kind, unordered_som,
+                                              NODE_START,
+                                              dfas[0]->stream_som_loc_width);
 
     int rv = determinise(n, rdfa->states, limit, &nfa_state_map);
     if (rv) {
@@ -831,11 +832,9 @@ unique_ptr<raw_som_dfa> attemptToMergeHaig(const vector<const raw_som_dfa *> &df
     }
 
     haig_merge_note_starts(dfas, per_dfa_adj, &rdfa->new_som_nfa_states);
-    rdfa->trigger_nfa_state = NODE_START;
 
     DEBUG_PRINTF("merged, building impl dfa (a,f) = (%hu,%hu)\n",
                  rdfa->start_anchored, rdfa->start_floating);
-    rdfa->stream_som_loc_width = dfas[0]->stream_som_loc_width;
 
     return rdfa;
 }