diff options
author | Christian Kandeler <christian.kandeler@digia.com> | 2014-02-18 12:54:41 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-02-18 15:05:59 +0100 |
commit | 6f6606b798b2e9c3911b2a0794835089ab100cb8 (patch) | |
tree | a72480bfaabdcd300a15c99305147034fcf651ee /src/lib/corelib/api | |
parent | bb505ec457932a595ff1f70dac64ec084f79dcb5 (diff) |
Do not cache external project data.
Always retrieve it anew, as information about targets can change due
to building.
Change-Id: I7b15f8bc50f7b22ea1351e66b5a4b22ea83f34d1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/corelib/api')
-rw-r--r-- | src/lib/corelib/api/project.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp index 99b2eeac0..8907e54a8 100644 --- a/src/lib/corelib/api/project.cpp +++ b/src/lib/corelib/api/project.cpp @@ -98,7 +98,7 @@ class ProjectPrivate : public QSharedData { public: ProjectPrivate(const TopLevelProjectPtr &internalProject, const Logger &logger) - : internalProject(internalProject), logger(logger), m_projectDataRetrieved(false) + : internalProject(internalProject), logger(logger) { } @@ -157,16 +157,13 @@ private: const ResolvedProjectConstPtr &internalProject); ProjectData m_projectData; - bool m_projectDataRetrieved; }; ProjectData ProjectPrivate::projectData() { - if (!m_projectDataRetrieved) { - retrieveProjectData(m_projectData, internalProject); - m_projectData.d->buildDir = internalProject->buildDirectory; - m_projectDataRetrieved = true; - } + m_projectData = ProjectData(); + retrieveProjectData(m_projectData, internalProject); + m_projectData.d->buildDir = internalProject->buildDirectory; return m_projectData; } @@ -580,7 +577,7 @@ void ProjectPrivate::prepareChangeToProject() { if (internalProject->locked) throw ErrorInfo(Tr::tr("A job is currently in process.")); - if (!m_projectDataRetrieved) + if (!m_projectData.isValid()) retrieveProjectData(m_projectData, internalProject); } @@ -621,7 +618,6 @@ void ProjectPrivate::retrieveProjectData(ProjectData &projectData, projectData.d->isValid = true; qSort(projectData.d->products); qSort(projectData.d->subProjects); - m_projectDataRetrieved = true; } } // namespace Internal |