From 9653f4b7e9a5d238fb80f28446c0c04c1dd19b4f Mon Sep 17 00:00:00 2001 From: Roberto Raggi <qtc-committer@nokia.com> Date: Tue, 9 Dec 2008 16:19:56 +0100 Subject: [PATCH] Fixed macro locations. --- src/libs/cplusplus/pp-engine.cpp | 10 ++++++---- src/libs/cplusplus/pp-environment.cpp | 6 +++--- src/libs/cplusplus/pp-environment.h | 2 +- src/libs/cplusplus/pp-macro-expander.cpp | 4 ++-- src/plugins/cpptools/cppmodelmanager.cpp | 8 ++++---- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp index fd618d27065..d2ed3ee73f3 100644 --- a/src/libs/cplusplus/pp-engine.cpp +++ b/src/libs/cplusplus/pp-engine.cpp @@ -481,12 +481,12 @@ void pp::operator () (const QByteArray &filename, const QByteArray &source, QByteArray *result) { - const QByteArray previousFile = env.current_file; - env.current_file = filename; + const QByteArray previousFile = env.currentFile; + env.currentFile = filename; operator () (source, result); - env.current_file = previousFile; + env.currentFile = previousFile; } pp::State pp::createStateFromSource(const QByteArray &source) const @@ -518,7 +518,7 @@ void pp::operator()(const QByteArray &source, QByteArray *result) result->append(QByteArray::number(_dot->lineno)); result->append(' '); result->append('"'); - result->append(env.current_file); + result->append(env.currentFile); result->append('"'); result->append('\n'); } else { @@ -844,6 +844,8 @@ void pp::processDefine(TokenIterator firstToken, TokenIterator lastToken) } Macro macro; + macro.fileName = env.currentFile; + macro.line = env.currentLine; macro.name = tokenText(*tk); ++tk; // skip T_IDENTIFIER diff --git a/src/libs/cplusplus/pp-environment.cpp b/src/libs/cplusplus/pp-environment.cpp index ff2ca77e4f2..20491727a4c 100644 --- a/src/libs/cplusplus/pp-environment.cpp +++ b/src/libs/cplusplus/pp-environment.cpp @@ -97,8 +97,6 @@ Macro *Environment::bind(const Macro &__macro) Macro *m = new Macro (__macro); m->hashcode = hash_code(m->name); - m->fileName = current_file; - m->line = currentLine; if (++_macro_count == _allocated_macros) { if (! _allocated_macros) @@ -122,11 +120,13 @@ Macro *Environment::bind(const Macro &__macro) return m; } -Macro *Environment::remove (const QByteArray &name) +Macro *Environment::remove(const QByteArray &name) { Macro macro; macro.name = name; macro.hidden = true; + macro.fileName = currentFile; + macro.line = currentLine; return bind(macro); } diff --git a/src/libs/cplusplus/pp-environment.h b/src/libs/cplusplus/pp-environment.h index e2a75d29b81..4200b5ea0ff 100644 --- a/src/libs/cplusplus/pp-environment.h +++ b/src/libs/cplusplus/pp-environment.h @@ -94,7 +94,7 @@ private: void rehash(); public: - QByteArray current_file; + QByteArray currentFile; unsigned currentLine; bool hide_next; diff --git a/src/libs/cplusplus/pp-macro-expander.cpp b/src/libs/cplusplus/pp-macro-expander.cpp index 9ae9702fe18..e17dd873dba 100644 --- a/src/libs/cplusplus/pp-macro-expander.cpp +++ b/src/libs/cplusplus/pp-macro-expander.cpp @@ -73,7 +73,7 @@ const char *MacroExpander::operator () (const char *__first, const char *__last, __result->append(QByteArray::number(env.currentLine)); __result->append(' '); __result->append('"'); - __result->append(env.current_file); + __result->append(env.currentFile); __result->append('"'); __result->append('\n'); ++lines; @@ -218,7 +218,7 @@ const char *MacroExpander::operator () (const char *__first, const char *__last, else if (fast_name == "__FILE__") { __result->append('"'); - __result->append(env.current_file); + __result->append(env.currentFile); __result->append('"'); continue; } diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 5111aa31996..40888d99f3f 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -390,17 +390,17 @@ void CppPreprocessor::sourceNeeded(QString &fileName, IncludeType type) } else { Document::Ptr previousDoc = switchDocument(Document::create(fileName)); - const QByteArray previousFile = env.current_file; + const QByteArray previousFile = env.currentFile; const unsigned previousLine = env.currentLine; - env.current_file = QByteArray(m_currentDoc->translationUnit()->fileName(), - m_currentDoc->translationUnit()->fileNameLength()); + env.currentFile = QByteArray(m_currentDoc->translationUnit()->fileName(), + m_currentDoc->translationUnit()->fileNameLength()); QByteArray preprocessedCode; m_proc(contents, &preprocessedCode); //qDebug() << preprocessedCode; - env.current_file = previousFile; + env.currentFile = previousFile; env.currentLine = previousLine; m_currentDoc->setSource(preprocessedCode); -- GitLab