diff options
author | Christian Kandeler <[email protected]> | 2021-10-21 12:15:57 +0200 |
---|---|---|
committer | Christian Kandeler <[email protected]> | 2021-10-21 12:21:32 +0000 |
commit | c3cee4041190ddd90c35517e21cddcc53a3b863a (patch) | |
tree | f4eace33ce8f7134e77f893e789850058cf58d82 /src/plugins/qmakeprojectmanager/qmakeparsernodes.h | |
parent | d7c7089ff3ff2877fe89ac09cc2afa9a3da041c0 (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.h | 10 |
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; }; |