aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmakeprojectmanager/qmakeparsernodes.h
diff options
context:
space:
mode:
authorChristian Kandeler <[email protected]>2021-10-21 12:15:57 +0200
committerChristian Kandeler <[email protected]>2021-10-21 12:21:32 +0000
commitc3cee4041190ddd90c35517e21cddcc53a3b863a (patch)
treef4eace33ce8f7134e77f893e789850058cf58d82 /src/plugins/qmakeprojectmanager/qmakeparsernodes.h
parentd7c7089ff3ff2877fe89ac09cc2afa9a3da041c0 (diff)
QmakeProjectManager: Do not leak QmakeEvalResults
Fixes: QTCREATORBUG-26326 Change-Id: I2a4abf86e9dd607bf7a0bf0843b0c9bff943d704 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Jarek Kobus <[email protected]>
Diffstat (limited to 'src/plugins/qmakeprojectmanager/qmakeparsernodes.h')
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeparsernodes.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/plugins/qmakeprojectmanager/qmakeparsernodes.h b/src/plugins/qmakeprojectmanager/qmakeparsernodes.h
index 9a4a22690e2..a894a11cc4c 100644
--- a/src/plugins/qmakeprojectmanager/qmakeparsernodes.h
+++ b/src/plugins/qmakeprojectmanager/qmakeparsernodes.h
@@ -116,6 +116,7 @@ namespace Internal {
Q_DECLARE_LOGGING_CATEGORY(qmakeNodesLog)
class QmakeEvalInput;
class QmakeEvalResult;
+using QmakeEvalResultPtr = std::shared_ptr<QmakeEvalResult>; // FIXME: Use unique_ptr once we require Qt 6
class QmakePriFileEvalResult;
} // namespace Internal;
@@ -358,10 +359,11 @@ private:
void setupReader();
Internal::QmakeEvalInput evalInput() const;
- static Internal::QmakeEvalResult *evaluate(const Internal::QmakeEvalInput &input);
- void applyEvaluate(Internal::QmakeEvalResult *parseResult);
+ static Internal::QmakeEvalResultPtr evaluate(const Internal::QmakeEvalInput &input);
+ void applyEvaluate(const Internal::QmakeEvalResultPtr &parseResult);
- void asyncEvaluate(QFutureInterface<Internal::QmakeEvalResult *> &fi, Internal::QmakeEvalInput input);
+ void asyncEvaluate(QFutureInterface<Internal::QmakeEvalResultPtr> &fi,
+ Internal::QmakeEvalInput input);
void cleanupProFileReaders();
void updateGeneratedFiles(const Utils::FilePath &buildDir);
@@ -400,7 +402,7 @@ private:
QMap<QString, QStringList> m_wildcardDirectoryContents;
// Async stuff
- QFutureWatcher<Internal::QmakeEvalResult *> *m_parseFutureWatcher = nullptr;
+ QFutureWatcher<Internal::QmakeEvalResultPtr> *m_parseFutureWatcher = nullptr;
QtSupport::ProFileReader *m_readerExact = nullptr;
QtSupport::ProFileReader *m_readerCumulative = nullptr;
};