Skip to content

Commit 6bafd19

Browse files
authored
made Token::mTokensFrontBack a reference (#5963)
1 parent ade6f61 commit 6bafd19

4 files changed

Lines changed: 163 additions & 107 deletions

File tree

lib/token.cpp

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,7 @@ namespace {
5757

5858
const std::list<ValueFlow::Value> TokenImpl::mEmptyValueList;
5959

60-
Token::Token()
61-
: Token(static_cast<TokensFrontBack*>(nullptr))
62-
{}
63-
64-
Token::Token(TokensFrontBack *tokensFrontBack) :
60+
Token::Token(TokensFrontBack &tokensFrontBack) :
6561
mTokensFrontBack(tokensFrontBack)
6662
{
6763
mImpl = new TokenImpl();
@@ -150,7 +146,7 @@ void Token::update_property_info()
150146
else if (std::isalpha((unsigned char)mStr[0]) || mStr[0] == '_' || mStr[0] == '$') { // Name
151147
if (mImpl->mVarId)
152148
tokType(eVariable);
153-
else if (mTokensFrontBack && mTokensFrontBack->list.isKeyword(mStr))
149+
else if (mTokensFrontBack.list.isKeyword(mStr))
154150
tokType(eKeyword);
155151
else if (baseKeywords.count(mStr) > 0)
156152
tokType(eKeyword);
@@ -296,8 +292,8 @@ void Token::deleteNext(nonneg int count)
296292

297293
if (mNext)
298294
mNext->previous(this);
299-
else if (mTokensFrontBack)
300-
mTokensFrontBack->back = this;
295+
else
296+
mTokensFrontBack.back = this;
301297
}
302298

303299
void Token::deletePrevious(nonneg int count)
@@ -316,8 +312,8 @@ void Token::deletePrevious(nonneg int count)
316312

317313
if (mPrevious)
318314
mPrevious->next(this);
319-
else if (mTokensFrontBack)
320-
mTokensFrontBack->front = this;
315+
else
316+
mTokensFrontBack.front = this;
321317
}
322318

323319
void Token::swapWithNext()
@@ -400,10 +396,10 @@ void Token::replace(Token *replaceThis, Token *start, Token *end)
400396
start->previous(replaceThis->previous());
401397
end->next(replaceThis->next());
402398

403-
if (end->mTokensFrontBack && end->mTokensFrontBack->back == end) {
399+
if (end->mTokensFrontBack.back == end) {
404400
while (end->next())
405401
end = end->next();
406-
end->mTokensFrontBack->back = end;
402+
end->mTokensFrontBack.back = end;
407403
}
408404

409405
// Update mProgressValue, fileIndex and linenr
@@ -1160,17 +1156,17 @@ Token* Token::insertToken(const std::string& tokenStr, const std::string& origin
11601156
if (this->previous()) {
11611157
newToken->previous(this->previous());
11621158
newToken->previous()->next(newToken);
1163-
} else if (mTokensFrontBack) {
1164-
mTokensFrontBack->front = newToken;
1159+
} else {
1160+
mTokensFrontBack.front = newToken;
11651161
}
11661162
this->previous(newToken);
11671163
newToken->next(this);
11681164
} else {
11691165
if (this->next()) {
11701166
newToken->next(this->next());
11711167
newToken->next()->previous(newToken);
1172-
} else if (mTokensFrontBack) {
1173-
mTokensFrontBack->back = newToken;
1168+
} else {
1169+
mTokensFrontBack.back = newToken;
11741170
}
11751171
this->next(newToken);
11761172
newToken->previous(this);
@@ -1820,7 +1816,7 @@ void Token::printValueFlow(bool xml, std::ostream &out) const
18201816
else {
18211817
if (fileIndex != tok->fileIndex()) {
18221818
outs += "File ";
1823-
outs += tok->mTokensFrontBack->list.getFiles()[tok->fileIndex()];
1819+
outs += tok->mTokensFrontBack.list.getFiles()[tok->fileIndex()];
18241820
outs += '\n';
18251821
line = 0;
18261822
}
@@ -2749,8 +2745,5 @@ const Token* findLambdaEndScope(const Token* tok) {
27492745

27502746
bool Token::isCpp() const
27512747
{
2752-
if (mTokensFrontBack) {
2753-
return mTokensFrontBack->list.isCPP();
2754-
}
2755-
return true; // assume C++ by default
2748+
return mTokensFrontBack.list.isCPP();
27562749
}

lib/token.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,7 @@ class CPPCHECKLIB Token {
151151
friend class TestToken;
152152

153153
private:
154-
// for usage in TestToken only
155-
Token();
156-
157-
TokensFrontBack* mTokensFrontBack{};
154+
TokensFrontBack& mTokensFrontBack;
158155

159156
public:
160157
Token(const Token &) = delete;
@@ -171,7 +168,7 @@ class CPPCHECKLIB Token {
171168
eNone
172169
};
173170

174-
explicit Token(TokensFrontBack *tokensFrontBack);
171+
explicit Token(TokensFrontBack &tokensFrontBack);
175172
// for usage in CheckIO::ArgumentInfo only
176173
explicit Token(const Token *tok);
177174
~Token();

lib/tokenlist.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ void TokenList::addtoken(const std::string& str, const nonneg int lineno, const
147147
if (mTokensFrontBack.back) {
148148
mTokensFrontBack.back->insertToken(str);
149149
} else {
150-
mTokensFrontBack.front = new Token(&mTokensFrontBack);
150+
mTokensFrontBack.front = new Token(mTokensFrontBack);
151151
mTokensFrontBack.back = mTokensFrontBack.front;
152152
mTokensFrontBack.back->str(str);
153153
}
@@ -165,7 +165,7 @@ void TokenList::addtoken(const std::string& str, const Token *locationTok)
165165
if (mTokensFrontBack.back) {
166166
mTokensFrontBack.back->insertToken(str);
167167
} else {
168-
mTokensFrontBack.front = new Token(&mTokensFrontBack);
168+
mTokensFrontBack.front = new Token(mTokensFrontBack);
169169
mTokensFrontBack.back = mTokensFrontBack.front;
170170
mTokensFrontBack.back->str(str);
171171
}
@@ -183,7 +183,7 @@ void TokenList::addtoken(const Token * tok, const nonneg int lineno, const nonne
183183
if (mTokensFrontBack.back) {
184184
mTokensFrontBack.back->insertToken(tok->str(), tok->originalName());
185185
} else {
186-
mTokensFrontBack.front = new Token(&mTokensFrontBack);
186+
mTokensFrontBack.front = new Token(mTokensFrontBack);
187187
mTokensFrontBack.back = mTokensFrontBack.front;
188188
mTokensFrontBack.back->str(tok->str());
189189
if (!tok->originalName().empty())
@@ -204,7 +204,7 @@ void TokenList::addtoken(const Token *tok, const Token *locationTok)
204204
if (mTokensFrontBack.back) {
205205
mTokensFrontBack.back->insertToken(tok->str(), tok->originalName());
206206
} else {
207-
mTokensFrontBack.front = new Token(&mTokensFrontBack);
207+
mTokensFrontBack.front = new Token(mTokensFrontBack);
208208
mTokensFrontBack.back = mTokensFrontBack.front;
209209
mTokensFrontBack.back->str(tok->str());
210210
if (!tok->originalName().empty())
@@ -225,7 +225,7 @@ void TokenList::addtoken(const Token *tok)
225225
if (mTokensFrontBack.back) {
226226
mTokensFrontBack.back->insertToken(tok->str(), tok->originalName(), tok->getMacroName());
227227
} else {
228-
mTokensFrontBack.front = new Token(&mTokensFrontBack);
228+
mTokensFrontBack.front = new Token(mTokensFrontBack);
229229
mTokensFrontBack.back = mTokensFrontBack.front;
230230
mTokensFrontBack.back->str(tok->str());
231231
mTokensFrontBack.back->originalName(tok->originalName());
@@ -355,7 +355,7 @@ void TokenList::createTokens(simplecpp::TokenList&& tokenList)
355355
if (mTokensFrontBack.back) {
356356
mTokensFrontBack.back->insertToken(str);
357357
} else {
358-
mTokensFrontBack.front = new Token(&mTokensFrontBack);
358+
mTokensFrontBack.front = new Token(mTokensFrontBack);
359359
mTokensFrontBack.back = mTokensFrontBack.front;
360360
mTokensFrontBack.back->str(str);
361361
}

0 commit comments

Comments
 (0)