From b6e12f4a1c2a8dbc7a672f0cf42ea76ece71b10d Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 7 Feb 2017 15:00:38 +0100 Subject: Convert macros from plain QByteArray to a vector of structs The old code model expected the macros as C++ formatted text ("#define Foo 42) but newer targets like the Clang codemodel expect key value arguments like "-DFoo=42". So instead of parsing the text again and again we use an abstract data description. Task-number: QTCREATORBUG-17915 Change-Id: I0179fd13c48a581e91ee79bba9d42d501c26f19f Reviewed-by: Tobias Hunger --- src/plugins/cpptools/cppsourceprocessor.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'src/plugins/cpptools/cppsourceprocessor.cpp') diff --git a/src/plugins/cpptools/cppsourceprocessor.cpp b/src/plugins/cpptools/cppsourceprocessor.cpp index fc28a6135e..507e33c90b 100644 --- a/src/plugins/cpptools/cppsourceprocessor.cpp +++ b/src/plugins/cpptools/cppsourceprocessor.cpp @@ -62,11 +62,12 @@ static Q_LOGGING_CATEGORY(log, "qtc.cpptools.sourceprocessor") namespace { -inline QByteArray generateFingerPrint(const QList &definedMacros, const QByteArray &code) +inline QByteArray generateFingerPrint(const QList &definedMacros, + const QByteArray &code) { QCryptographicHash hash(QCryptographicHash::Sha1); hash.addData(code); - foreach (const Macro ¯o, definedMacros) { + foreach (const CPlusPlus::Macro ¯o, definedMacros) { if (macro.isHidden()) { static const QByteArray undef("#undef "); hash.addData(undef); @@ -98,10 +99,10 @@ inline Message messageNoFileContents(Document::Ptr &document, const QString &fil return Message(Message::Warning, document->fileName(), line, /*column =*/ 0, text); } -inline const Macro revision(const WorkingCopy &workingCopy, - const Macro ¯o) +inline const CPlusPlus::Macro revision(const WorkingCopy &workingCopy, + const CPlusPlus::Macro ¯o) { - Macro newMacro(macro); + CPlusPlus::Macro newMacro(macro); newMacro.setFileRevision(workingCopy.get(macro.fileName()).second); return newMacro; } @@ -316,7 +317,7 @@ QString CppSourceProcessor::resolveFile_helper(const QString &fileName, return QString(); } -void CppSourceProcessor::macroAdded(const Macro ¯o) +void CppSourceProcessor::macroAdded(const CPlusPlus::Macro ¯o) { if (!m_currentDoc) return; @@ -325,7 +326,7 @@ void CppSourceProcessor::macroAdded(const Macro ¯o) } void CppSourceProcessor::passedMacroDefinitionCheck(unsigned bytesOffset, unsigned utf16charsOffset, - unsigned line, const Macro ¯o) + unsigned line, const CPlusPlus::Macro ¯o) { if (!m_currentDoc) return; @@ -347,7 +348,7 @@ void CppSourceProcessor::failedMacroDefinitionCheck(unsigned bytesOffset, unsign } void CppSourceProcessor::notifyMacroReference(unsigned bytesOffset, unsigned utf16charOffset, - unsigned line, const Macro ¯o) + unsigned line, const CPlusPlus::Macro ¯o) { if (!m_currentDoc) return; @@ -359,7 +360,7 @@ void CppSourceProcessor::notifyMacroReference(unsigned bytesOffset, unsigned utf } void CppSourceProcessor::startExpandingMacro(unsigned bytesOffset, unsigned utf16charOffset, - unsigned line, const Macro ¯o, + unsigned line, const CPlusPlus::Macro ¯o, const QVector &actuals) { if (!m_currentDoc) @@ -371,7 +372,7 @@ void CppSourceProcessor::startExpandingMacro(unsigned bytesOffset, unsigned utf1 line, actuals); } -void CppSourceProcessor::stopExpandingMacro(unsigned, const Macro &) +void CppSourceProcessor::stopExpandingMacro(unsigned, const CPlusPlus::Macro &) { if (!m_currentDoc) return; -- cgit v1.2.1