From 5cf639341e373b7d7aaa6f20ffba30feb94523ef Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Thu, 1 Feb 2024 11:25:52 +0100 Subject: [PATCH] QrcParser: Replace QSharedPointer with std::shared_ptr According to https://wiki.qt.io/Things_To_Look_Out_For_In_Reviews QSharedPointer impl is poor and it's going to be removed from Qt 7. Change-Id: I557804bf781b7fa58129242bd94e1566ed3ee304 Reviewed-by: hjk --- src/libs/qmljs/qmljsmodelmanagerinterface.cpp | 6 +++--- src/libs/utils/fileinprojectfinder.cpp | 1 - src/libs/utils/fileinprojectfinder.h | 3 +-- src/libs/utils/qrcparser.cpp | 5 ++--- src/libs/utils/qrcparser.h | 6 ++---- tests/auto/qml/qrcparser/tst_qrcparser.cpp | 18 +++++++++--------- 6 files changed, 17 insertions(+), 22 deletions(-) diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp index 3ee614348be..aac0de9ab1e 100644 --- a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp +++ b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp @@ -27,12 +27,12 @@ #include #include #include +#include #include #include #include -#include #include -#include +#include using namespace Utils; @@ -508,7 +508,7 @@ void ModelManagerInterface::iterateQrcFiles( for (const Utils::FilePath &qrcFilePath : std::as_const(allQrcs)) { QrcParser::ConstPtr qrcFile = m_qrcCache.parsedPath(qrcFilePath.toFSPathString()); - if (qrcFile.isNull()) + if (!qrcFile) continue; callback(qrcFile); } diff --git a/src/libs/utils/fileinprojectfinder.cpp b/src/libs/utils/fileinprojectfinder.cpp index 29e0f6d7c2c..3e14314dc33 100644 --- a/src/libs/utils/fileinprojectfinder.cpp +++ b/src/libs/utils/fileinprojectfinder.cpp @@ -5,7 +5,6 @@ #include "algorithm.h" #include "fileutils.h" -#include "hostosinfo.h" #include "qrcparser.h" #include "qtcassert.h" diff --git a/src/libs/utils/fileinprojectfinder.h b/src/libs/utils/fileinprojectfinder.h index 686f123e9ca..29b1679e075 100644 --- a/src/libs/utils/fileinprojectfinder.h +++ b/src/libs/utils/fileinprojectfinder.h @@ -8,7 +8,6 @@ #include "filepath.h" #include -#include #include #include @@ -60,7 +59,7 @@ private: private: FilePaths m_allQrcFiles; mutable QHash m_fileCache; - mutable QHash> m_parserCache; + mutable QHash> m_parserCache; }; CacheEntry findInSearchPaths(const FilePath &filePath, FileHandler fileHandler, diff --git a/src/libs/utils/qrcparser.cpp b/src/libs/utils/qrcparser.cpp index 62aafe71a6c..5b27cac49fa 100644 --- a/src/libs/utils/qrcparser.cpp +++ b/src/libs/utils/qrcparser.cpp @@ -8,7 +8,6 @@ #include // Yes, the translations are still there -#include #include #include #include @@ -611,8 +610,8 @@ QrcParser::Ptr QrcCachePrivate::addPath(const QString &path, const QString &cont qCWarning(qrcParserLog) << "adding invalid qrc " << path << " to the cache:" << newParser->errorMessages(); { QWriteLocker l(&m_mutex); - QPair currentValue = m_cache.value(path, {QrcParser::Ptr(nullptr), 0}); - if (currentValue.first.isNull()) + QPair currentValue = m_cache.value(path, {{}, 0}); + if (!currentValue.first) currentValue.first = newParser; currentValue.second += 1; m_cache.insert(path, currentValue); diff --git a/src/libs/utils/qrcparser.h b/src/libs/utils/qrcparser.h index 14352e26b8d..f81134bfef8 100644 --- a/src/libs/utils/qrcparser.h +++ b/src/libs/utils/qrcparser.h @@ -7,8 +7,6 @@ #include "filepath.h" -#include -#include #include QT_BEGIN_NAMESPACE @@ -34,8 +32,8 @@ public: QList sourceFiles; }; - typedef QSharedPointer Ptr; - typedef QSharedPointer ConstPtr; + using Ptr = std::shared_ptr; + using ConstPtr = std::shared_ptr; ~QrcParser(); bool parseFile(const QString &path, const QString &contents); QString firstFileAtPath(const QString &path, const QLocale &locale) const; diff --git a/tests/auto/qml/qrcparser/tst_qrcparser.cpp b/tests/auto/qml/qrcparser/tst_qrcparser.cpp index d9d951e2188..c46746d40be 100644 --- a/tests/auto/qml/qrcparser/tst_qrcparser.cpp +++ b/tests/auto/qml/qrcparser/tst_qrcparser.cpp @@ -119,25 +119,25 @@ void tst_QrcParser::firstInTest() void tst_QrcParser::cacheTest() { QFETCH(QString, path); - QVERIFY(m_cache.parsedPath(path).isNull()); + QVERIFY(!m_cache.parsedPath(path)); QrcParser::ConstPtr p0 = m_cache.addPath(path, QString()); - QVERIFY(!p0.isNull()); + QVERIFY(p0); QrcParser::ConstPtr p1 = m_cache.parsedPath(path); - QVERIFY(p1.data() == p0.data()); + QVERIFY(p1.get() == p0.get()); QrcParser::ConstPtr p2 = m_cache.addPath(path, QString()); - QVERIFY(p2.data() == p1.data()); + QVERIFY(p2.get() == p1.get()); QrcParser::ConstPtr p3 = m_cache.parsedPath(path); - QVERIFY(p3.data() == p2.data()); + QVERIFY(p3.get() == p2.get()); QrcParser::ConstPtr p4 = m_cache.updatePath(path, QString()); - QVERIFY(p4.data() != p3.data()); + QVERIFY(p4.get() != p3.get()); QrcParser::ConstPtr p5 = m_cache.parsedPath(path); - QVERIFY(p5.data() == p4.data()); + QVERIFY(p5.get() == p4.get()); m_cache.removePath(path); QrcParser::ConstPtr p6 = m_cache.parsedPath(path); - QVERIFY(p6.data() == p5.data()); + QVERIFY(p6.get() == p5.get()); m_cache.removePath(path); QrcParser::ConstPtr p7 = m_cache.parsedPath(path); - QVERIFY(p7.isNull()); + QVERIFY(!p7); } void tst_QrcParser::simpleTest()