From ebe4ab04ca156c64a5c56a6fca877654b451fe3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Martins?= Date: Wed, 1 Jul 2015 17:23:10 +0100 Subject: Use const-ref in foreach if T is big or non-trivial Criteria: Linux x86_64, sizeof(T) > 8 Change-Id: I78c2b776ff219fa1ff6632fde17ae25fae66c54e Reviewed-by: Olivier Goffart (Woboq GmbH) Reviewed-by: Marc Mutz --- src/tools/qlalr/compress.cpp | 2 +- src/tools/qlalr/cppgenerator.cpp | 4 ++-- src/tools/qlalr/lalr.cpp | 8 ++++---- src/tools/qlalr/parsetable.cpp | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/tools/qlalr') diff --git a/src/tools/qlalr/compress.cpp b/src/tools/qlalr/compress.cpp index 247b284421..fa67504a08 100644 --- a/src/tools/qlalr/compress.cpp +++ b/src/tools/qlalr/compress.cpp @@ -183,7 +183,7 @@ void Compress::operator () (int *table, int row_count, int column_count) index.fill (-999999, row_count); - foreach (UncompressedRow row, sortedTable) + foreach (const UncompressedRow &row, sortedTable) { int first_token = std::distance (row.begin (), row.beginNonZeros ()); QVector::iterator pos = info.begin (); diff --git a/src/tools/qlalr/cppgenerator.cpp b/src/tools/qlalr/cppgenerator.cpp index 80f7a4ed2b..3005690e6e 100644 --- a/src/tools/qlalr/cppgenerator.cpp +++ b/src/tools/qlalr/cppgenerator.cpp @@ -163,7 +163,7 @@ void CppGenerator::operator () () if (item->rule == grammar.goal) accept_state = q; - foreach (Name s, lookaheads) + foreach (const Name &s, lookaheads) { int &u = ACTION (q, aut.id (s)); @@ -616,7 +616,7 @@ void CppGenerator::generateImpl (QTextStream &out) out << name_ids.value(rule->lhs); - foreach (Name n, rule->rhs) + foreach (const Name &n, rule->rhs) out << ", " << name_ids.value (n); } out << "};" << endl << endl; diff --git a/src/tools/qlalr/lalr.cpp b/src/tools/qlalr/lalr.cpp index 3d0d5de19b..4470c8f07f 100644 --- a/src/tools/qlalr/lalr.cpp +++ b/src/tools/qlalr/lalr.cpp @@ -367,7 +367,7 @@ void Automaton::closure (StatePointer state) if (_M_grammar->isNonTerminal (*item->dot)) { - foreach (RulePointer rule, _M_grammar->rule_map.values (*item->dot)) + foreach (const RulePointer &rule, _M_grammar->rule_map.values (*item->dot)) { Item ii; ii.rule = rule; @@ -413,7 +413,7 @@ void Automaton::buildLookbackSets () if (! _M_grammar->isNonTerminal (A)) continue; - foreach (RulePointer rule, _M_grammar->rule_map.values (A)) + foreach (const RulePointer &rule, _M_grammar->rule_map.values (A)) { StatePointer q = p; @@ -606,7 +606,7 @@ void Automaton::buildIncludesDigraph () if (! _M_grammar->isNonTerminal (name)) continue; - foreach (RulePointer rule, _M_grammar->rule_map.values (name)) + foreach (const RulePointer &rule, _M_grammar->rule_map.values (name)) { StatePointer p = pp; @@ -706,7 +706,7 @@ void Automaton::buildLookaheads () { for (ItemPointer item = p->closure.begin (); item != p->closure.end (); ++item) { - foreach (Lookback lookback, lookbacks.values (item)) + foreach (const Lookback &lookback, lookbacks.values (item)) { StatePointer q = lookback.state; diff --git a/src/tools/qlalr/parsetable.cpp b/src/tools/qlalr/parsetable.cpp index 8b62e597ef..77e2219987 100644 --- a/src/tools/qlalr/parsetable.cpp +++ b/src/tools/qlalr/parsetable.cpp @@ -91,7 +91,7 @@ void ParseTable::operator () (Automaton *aut) first = false; - foreach (Name la, aut->lookaheads.value (item)) + foreach (const Name &la, aut->lookaheads.value (item)) out << " " << *la << " reduce using rule " << aut->id (item->rule) << " (" << *item->rule->lhs << ")" << endl; } -- cgit v1.2.3