diff options
Diffstat (limited to 'qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeProjectInfo.java')
-rw-r--r-- | qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeProjectInfo.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeProjectInfo.java b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeProjectInfo.java index c3cfa866aca..d611febd0b8 100644 --- a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeProjectInfo.java +++ b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeProjectInfo.java @@ -75,11 +75,13 @@ public final class QMakeProjectInfo implements IQMakeProjectInfo { // must not be called under any QMake-related sync-lock, except for workspace lock // we are running outside of synchronized block to prevent deadlock involving workspace lock // this means that theoretically there might be multiple thread calculating the same results but only the last one wins - void updateState() { + State updateState() { // note that getProjectDescription might acquire workspace lock ICProjectDescription projectDescription = CoreModel.getDefault().getProjectDescriptionManager().getProjectDescription(project); ICConfigurationDescription configuration = projectDescription != null ? projectDescription.getActiveConfiguration() : null; - setState(configuration != null ? new State(configuration) : STATE_INVALID); + State newState = configuration != null ? new State(configuration) : STATE_INVALID; + setState(newState); + return newState; } private void setState(State newState) { @@ -125,6 +127,11 @@ public final class QMakeProjectInfo implements IQMakeProjectInfo { } } + @Override + public IQMakeInfo updateActualInfo() { + return updateState().getQMakeInfo(); + } + // converts IFile to absolute path private static String toFilePath(IFile file) { if (file != null) { |