Refactoring in tokenize.cpp: Fix cppcheck warning, add some const, fix typo from previous refactoring

This commit is contained in:
Alexander Mai 2015-05-24 11:43:46 +02:00
parent 227a73eb45
commit 7f15873759
1 changed files with 53 additions and 56 deletions

View File

@ -2787,9 +2787,7 @@ void Tokenizer::setVarId()
for (Token *tok = list.front(); tok; tok = tok->next()) {
if (Token::Match(tok, "namespace|class|struct %name% {|:")) {
const std::string &classname(tok->next()->str());
bool namesp = tok->str() == "namespace";
const bool namesp = tok->str() == "namespace";
const Token* tokStart = tok->tokAt(2);
while (tokStart && tokStart->str() != "{") {
if (Token::Match(tokStart, "public|private|protected %name%"))
@ -4795,8 +4793,8 @@ bool Tokenizer::simplifyConditions()
else
result = !eq;
} else {
double op1 = MathLib::toDoubleNumber(tok->next()->str());
double op2 = MathLib::toDoubleNumber(tok->strAt(3));
const double op1 = MathLib::toDoubleNumber(tok->next()->str());
const double op2 = MathLib::toDoubleNumber(tok->strAt(3));
if (cmp == ">=")
result = (op1 >= op2);
else if (cmp == ">")
@ -4810,8 +4808,8 @@ bool Tokenizer::simplifyConditions()
}
} else {
// Compare boolean
bool op1 = (tok->next()->str() == std::string("true"));
bool op2 = (tok->strAt(3) == std::string("true"));
const bool op1 = (tok->next()->str() == std::string("true"));
const bool op2 = (tok->strAt(3) == std::string("true"));
if (cmp == "==")
result = (op1 == op2);
@ -5751,7 +5749,7 @@ void Tokenizer::simplifyStdType()
for (Token *tok = list.front(); tok; tok = tok->next()) {
// long unsigned => unsigned long
if (Token::Match(tok, "char|short|int|long unsigned|signed")) {
bool isUnsigned = tok->next()->str() == "unsigned";
const bool isUnsigned = tok->next()->str() == "unsigned";
tok->deleteNext();
tok->isUnsigned(isUnsigned);
tok->isSigned(!isUnsigned);
@ -5762,7 +5760,7 @@ void Tokenizer::simplifyStdType()
// check if signed or unsigned specified
if (Token::Match(tok, "unsigned|signed")) {
bool isUnsigned = tok->str() == "unsigned";
const bool isUnsigned = tok->str() == "unsigned";
// unsigned i => unsigned int i
if (!Token::Match(tok->next(), "char|short|int|long"))
@ -7977,14 +7975,14 @@ void Tokenizer::simplifyStd()
if (isC())
return;
std::set<std::string> f;
f.insert("strcat");
f.insert("strcpy");
f.insert("strncat");
f.insert("strncpy");
f.insert("free");
f.insert("malloc");
f.insert("strdup");
const static std::set<std::string> f = make_container< std::set<std::string> > () <<
"strcat" <<
"strcpy" <<
"strncat" <<
"strncpy" <<
"free" <<
"malloc" <<
"strdup";
for (Token *tok = list.front(); tok; tok = tok->next()) {
if (tok->str() != "std")
@ -8007,7 +8005,7 @@ void Tokenizer::simplifyStd()
bool Tokenizer::IsScopeNoReturn(const Token *endScopeToken, bool *unknown) const
{
std::string unknownFunc;
bool ret = _settings->library.isScopeNoReturn(endScopeToken,&unknownFunc);
const bool ret = _settings->library.isScopeNoReturn(endScopeToken,&unknownFunc);
if (unknown)
*unknown = !unknownFunc.empty();
if (!unknownFunc.empty() && _settings->checkLibrary && _settings->isEnabled("information")) {
@ -8271,7 +8269,7 @@ void Tokenizer::eraseDeadCode(Token *begin, const Token *end)
} else if (isgoto && Token::Match(tok, "[{};] do|while|for|BOOST_FOREACH")) {
//it's possible that code inside loop is not dead,
//because of the possible presence of the label pointed by 'goto'
Token *start = tok->tokAt(2);
const Token *start = tok->tokAt(2);
if (start && start->str() == "(")
start = start->link()->next();
if (start && start->str() == "{") {
@ -9712,13 +9710,12 @@ void Tokenizer::simplifyMicrosoftStringFunctions()
{
// skip if not Windows
if (_settings->platformType != Settings::Win32A &&
_settings->platformType != Settings::Win32W &
_settings->platformType != Settings::Win32W &&
_settings->platformType != Settings::Win64)
return;
struct triplet {
triplet(const char* t, const char* m, const char* u) : tchar(t), mbcs(m), unicode(u) {}
triplet(const std::string& t) : tchar(t) {}
triplet(const char* t, const char* m="", const char* u="") : tchar(t), mbcs(m), unicode(u) {}
bool operator <(const triplet& rhs) const {
return tchar < rhs.tchar;
}
@ -9761,7 +9758,7 @@ void Tokenizer::simplifyMicrosoftStringFunctions()
const bool ansi = _settings->platformType == Settings::Win32A;
for (Token *tok = list.front(); tok; tok = tok->next()) {
std::set<triplet>::const_iterator match = apis.find(tok->str());
std::set<triplet>::const_iterator match = apis.find(tok->str().c_str());
if (match!=apis.end()) {
const std::string pattern(match->tchar + " (");
if (Token::simpleMatch(tok, pattern.c_str())) {