On Fri, Aug 15, 2014 at 12:20:45PM -0700, [email protected] wrote: > Signed-off-by: John Johansen <[email protected]>
Acked-by: Steve Beattie <[email protected]> > === modified file 'parser/libapparmor_re/hfa.cc' > --- > parser/libapparmor_re/hfa.cc | 50 > +++++++++++++++++++++++-------------------- > parser/libapparmor_re/hfa.h | 1 > 2 files changed, 28 insertions(+), 23 deletions(-) > > --- parser/libapparmor_re/hfa.cc.orig > +++ parser/libapparmor_re/hfa.cc > @@ -357,12 +357,37 @@ > cerr << " " << (*i)->label << " <= " << (*i)->proto << "\n"; > } > > +void DFA::process_work_queue(const char *header, dfaflags_t flags) > +{ > + int i = 0; > + > + while (!work_queue.empty()) { > + if (i % 1000 == 0 && (flags & DFA_DUMP_PROGRESS)) { > + cerr << "\033[2K" << header << ": queue " > + << work_queue.size() > + << "\tstates " > + << states.size() > + << "\teliminated duplicates " > + << node_map.dup > + << "\r"; > + } > + i++; > + > + State *from = work_queue.front(); > + work_queue.pop_front(); > + > + /* Update 'from's transitions, and if it transitions to any > + * unknown State create it and add it to the work_queue > + */ > + update_state_transitions(from); > + } /* while (!work_queue.empty()) */ > +} > + > /** > * Construct a DFA from a syntax tree. > */ > DFA::DFA(Node *root, dfaflags_t flags): root(root) > { > - int i = 0; > diffcount = 0; /* set by diff_encode */ > > if (flags & DFA_DUMP_PROGRESS) > @@ -394,28 +419,7 @@ > * work_queue at any given time, thus reducing peak memory use. > */ > work_queue.push_back(start); > - > - while (!work_queue.empty()) { > - if (i % 1000 == 0 && (flags & DFA_DUMP_PROGRESS)) { > - cerr << "\033[2KCreating dfa: queue " > - << work_queue.size() > - << "\tstates " > - << states.size() > - << "\teliminated duplicates " > - << node_map.dup > - << "\r"; > - } > - i++; > - > - State *from = work_queue.front(); > - work_queue.pop_front(); > - > - /* Update 'from's transitions, and if it transitions to any > - * unknown State create it and add it to the work_queue > - */ > - update_state_transitions(from); > - > - } /* while (!work_queue.empty()) */ > + process_work_queue("Creating dfa", flags); > > /* cleanup Sets of nodes used computing the DFA as they are no longer > * needed. > --- parser/libapparmor_re/hfa.h.orig > +++ parser/libapparmor_re/hfa.h > @@ -292,6 +292,7 @@ > void dump_node_to_dfa(void); > State *add_new_state(NodeSet *nodes, State *other); > void update_state_transitions(State *state); > + void process_work_queue(const char *header, dfaflags_t); > void dump_diff_chain(ostream &os, map<State *, Partition> &relmap, > Partition &chain, State *state, > unsigned int &count, unsigned int &total, > > > -- > AppArmor mailing list > [email protected] > Modify settings or unsubscribe at: > https://lists.ubuntu.com/mailman/listinfo/apparmor -- Steve Beattie <[email protected]> http://NxNW.org/~steve/
signature.asc
Description: Digital signature
-- AppArmor mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor
