diff options
author | Marco Bubke <marco.bubke@qt.io> | 2017-02-07 15:00:38 +0100 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2017-09-14 15:23:56 +0000 |
commit | b6e12f4a1c2a8dbc7a672f0cf42ea76ece71b10d (patch) | |
tree | 81550e7fce5053ecb1ead60ddf59534d44517a87 /src/plugins/cpptools/cppsourceprocessor.cpp | |
parent | 3adb71d45ebebd8c8fc2ec6beeb7a5ee67d64e4e (diff) | |
download | qt-creator-b6e12f4a1c2a8dbc7a672f0cf42ea76ece71b10d.tar.gz |
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 <tobias.hunger@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppsourceprocessor.cpp')
-rw-r--r-- | src/plugins/cpptools/cppsourceprocessor.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
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<Macro> &definedMacros, const QByteArray &code) +inline QByteArray generateFingerPrint(const QList<CPlusPlus::Macro> &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<MacroArgumentReference> &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; |