forked from qt-creator/qt-creator
CPlusPlus: Reuse QScopeGuard instead of ExecuteOnDestruction
Change-Id: Ifb2cf839777c18b4f66a88b7f5106f05148b0c20 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
10
src/libs/3rdparty/cplusplus/Lexer.cpp
vendored
10
src/libs/3rdparty/cplusplus/Lexer.cpp
vendored
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
#include "cppassert.h"
|
#include "cppassert.h"
|
||||||
|
|
||||||
#include <utils/executeondestruction.h>
|
#include <QScopeGuard>
|
||||||
|
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
|
|
||||||
@@ -756,9 +756,9 @@ void Lexer::scanStringLiteral(Token *tok, unsigned char hint)
|
|||||||
|
|
||||||
void Lexer::scanRawStringLiteral(Token *tok, unsigned char hint)
|
void Lexer::scanRawStringLiteral(Token *tok, unsigned char hint)
|
||||||
{
|
{
|
||||||
Utils::ExecuteOnDestruction suffixCleaner;
|
QScopeGuard cleanup([this] { _expectedRawStringSuffix.clear(); });
|
||||||
if (!control())
|
if (control())
|
||||||
suffixCleaner.reset([this] { _expectedRawStringSuffix.clear(); });
|
cleanup.dismiss();
|
||||||
|
|
||||||
const char *yytext = _currentChar;
|
const char *yytext = _currentChar;
|
||||||
|
|
||||||
@@ -827,7 +827,7 @@ void Lexer::scanRawStringLiteral(Token *tok, unsigned char hint)
|
|||||||
tok->f.kind = T_RAW_STRING_LITERAL;
|
tok->f.kind = T_RAW_STRING_LITERAL;
|
||||||
|
|
||||||
if (!control() && !closed) {
|
if (!control() && !closed) {
|
||||||
suffixCleaner.reset([]{});
|
cleanup.dismiss();
|
||||||
s._tokenKind = tok->f.kind;
|
s._tokenKind = tok->f.kind;
|
||||||
_expectedRawStringSuffix.prepend(')');
|
_expectedRawStringSuffix.prepend(')');
|
||||||
_expectedRawStringSuffix.append('"');
|
_expectedRawStringSuffix.append('"');
|
||||||
|
@@ -30,7 +30,6 @@
|
|||||||
#include <cplusplus/Literals.h>
|
#include <cplusplus/Literals.h>
|
||||||
#include <cplusplus/cppassert.h>
|
#include <cplusplus/cppassert.h>
|
||||||
|
|
||||||
#include <utils/executeondestruction.h>
|
|
||||||
#include <utils/filepath.h>
|
#include <utils/filepath.h>
|
||||||
#include <utils/scopedswap.h>
|
#include <utils/scopedswap.h>
|
||||||
|
|
||||||
@@ -40,6 +39,7 @@
|
|||||||
#include <QLoggingCategory>
|
#include <QLoggingCategory>
|
||||||
#include <QTime>
|
#include <QTime>
|
||||||
#include <QPair>
|
#include <QPair>
|
||||||
|
#include <QScopeGuard>
|
||||||
|
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
@@ -1513,14 +1513,15 @@ bool Preprocessor::collectActualArguments(PPToken *tk, QVector<QVector<PPToken>
|
|||||||
Q_ASSERT(tk);
|
Q_ASSERT(tk);
|
||||||
Q_ASSERT(actuals);
|
Q_ASSERT(actuals);
|
||||||
|
|
||||||
ExecuteOnDestruction removeBlockedName;
|
QScopeGuard cleanup([this] {
|
||||||
if (m_state.m_tokenBuffer) {
|
if (m_state.m_tokenBuffer && !m_state.m_tokenBuffer->blockedMacroNames.empty())
|
||||||
removeBlockedName.reset([this] {
|
m_state.m_tokenBuffer->blockedMacroNames.pop_back();
|
||||||
if (m_state.m_tokenBuffer && !m_state.m_tokenBuffer->blockedMacroNames.empty())
|
});
|
||||||
m_state.m_tokenBuffer->blockedMacroNames.pop_back();
|
|
||||||
});
|
if (m_state.m_tokenBuffer)
|
||||||
m_state.m_tokenBuffer->blockedMacroNames.push_back(parentMacroName);
|
m_state.m_tokenBuffer->blockedMacroNames.push_back(parentMacroName);
|
||||||
}
|
else
|
||||||
|
cleanup.dismiss();
|
||||||
|
|
||||||
lex(tk); // consume the identifier
|
lex(tk); // consume the identifier
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user