Skip to content

Commit 560e7d6

Browse files
committed
Get rid of "magic" patterns set
* magic should match "knownPatterns" but it didn't * two identical sets are of no use
1 parent 71f6295 commit 560e7d6

1 file changed

Lines changed: 9 additions & 27 deletions

File tree

lib/checkinternal.cpp

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ void CheckInternal::checkTokenSimpleMatchPatterns()
153153
}
154154

155155
namespace {
156-
const std::set<std::string> magics = make_container< std::set<std::string> > ()
156+
const std::set<std::string> knownPatterns = make_container< std::set<std::string> > ()
157157
<< "%any%"
158158
<< "%assign%"
159159
<< "%bool%"
@@ -167,6 +167,7 @@ namespace {
167167
<< "%str%"
168168
<< "%type%"
169169
<< "%name%"
170+
<< "%var%"
170171
<< "%varid%";
171172
}
172173

@@ -188,17 +189,17 @@ void CheckInternal::checkMissingPercentCharacter()
188189

189190
const std::string pattern = patternTok->strValue();
190191

191-
std::set<std::string>::const_iterator magic, magics_end = magics.end();
192-
for (magic = magics.begin(); magic != magics_end; ++magic) {
193-
const std::string broken_magic = (*magic).substr(0, (*magic).size() - 1);
192+
std::set<std::string>::const_iterator knownPattern, knownPatternsEnd = knownPatterns.end();
193+
for (knownPattern = knownPatterns.begin(); knownPattern != knownPatternsEnd; ++knownPattern) {
194+
const std::string brokenPattern = (*knownPattern).substr(0, (*knownPattern).size() - 1);
194195

195196
std::string::size_type pos = 0;
196-
while ((pos = pattern.find(broken_magic, pos)) != std::string::npos) {
197+
while ((pos = pattern.find(brokenPattern, pos)) != std::string::npos) {
197198
// Check if it's the full pattern
198-
if (pattern.find(*magic, pos) != pos) {
199+
if (pattern.find(*knownPattern, pos) != pos) {
199200
// Known whitelist of substrings
200-
if ((broken_magic == "%var" && pattern.find("%varid%", pos) == pos) ||
201-
(broken_magic == "%or" && pattern.find("%oror%", pos) == pos)) {
201+
if ((brokenPattern == "%var" && pattern.find("%varid%", pos) == pos) ||
202+
(brokenPattern == "%or" && pattern.find("%oror%", pos) == pos)) {
202203
++pos;
203204
continue;
204205
}
@@ -213,25 +214,6 @@ void CheckInternal::checkMissingPercentCharacter()
213214
}
214215
}
215216

216-
namespace {
217-
const std::set<std::string> knownPatterns = make_container< std::set<std::string> > ()
218-
<< "%any%"
219-
<< "%assign%"
220-
<< "%bool%"
221-
<< "%char%"
222-
<< "%comp%"
223-
<< "%name%"
224-
<< "%num%"
225-
<< "%op%"
226-
<< "%cop%"
227-
<< "%or%"
228-
<< "%oror%"
229-
<< "%str%"
230-
<< "%type%"
231-
<< "%var%"
232-
<< "%varid%";
233-
}
234-
235217
void CheckInternal::checkUnknownPattern()
236218
{
237219
const SymbolDatabase *symbolDatabase = _tokenizer->getSymbolDatabase();

0 commit comments

Comments
 (0)