From ba2d7a4fa7c29ea2d62da3d6f6835a091f604656 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Mon, 19 Aug 2013 16:05:29 +0200 Subject: C++: Only parse with appropriate defines for open editors. If two files from different (sub-)projects include the same header file, and the defined macros differ for both files, the header file will be parsed with only the appropriate macros for the including file. Task-number: QTCREATORBUG-9802 Task-number: QTCREATORBUG-1249 Change-Id: I560490afa287b3bb1e863bce1bb4f57af36ad56e Reviewed-by: Nikolai Kosjar --- src/plugins/cpptools/cpppreprocessor.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/plugins/cpptools/cpppreprocessor.h') diff --git a/src/plugins/cpptools/cpppreprocessor.h b/src/plugins/cpptools/cpppreprocessor.h index e1e3f228d1..d0d84ac8e3 100644 --- a/src/plugins/cpptools/cpppreprocessor.h +++ b/src/plugins/cpptools/cpppreprocessor.h @@ -23,6 +23,8 @@ public: static QString cleanPath(const QString &path); CppPreprocessor(QPointer modelManager, bool dumpFileNameWhileParsing = false); + CppPreprocessor(QPointer modelManager, const CPlusPlus::Snapshot &snapshot, + bool dumpFileNameWhileParsing = false); virtual ~CppPreprocessor(); void setRevision(unsigned revision); @@ -35,12 +37,17 @@ public: void removeFromCache(const QString &fileName); void resetEnvironment(); + CPlusPlus::Snapshot snapshot() const + { return m_snapshot; } + const QSet &todo() const { return m_todo; } CppModelManager *modelManager() const { return m_modelManager.data(); } + void setGlobalSnapshot(const CPlusPlus::Snapshot &snapshot) { m_globalSnapshot = snapshot; } + protected: CPlusPlus::Document::Ptr switchDocument(CPlusPlus::Document::Ptr doc); @@ -71,6 +78,7 @@ private: void addFrameworkPath(const QString &frameworkPath); CPlusPlus::Snapshot m_snapshot; + CPlusPlus::Snapshot m_globalSnapshot; QPointer m_modelManager; bool m_dumpFileNameWhileParsing; CPlusPlus::Environment m_env; -- cgit v1.2.1