forked from qt-creator/qt-creator
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 <hjk@qt.io>
This commit is contained in:
@@ -27,12 +27,12 @@
|
|||||||
#include <QDirIterator>
|
#include <QDirIterator>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
|
#include <QLibraryInfo>
|
||||||
#include <QMetaObject>
|
#include <QMetaObject>
|
||||||
#include <QTextDocument>
|
#include <QTextDocument>
|
||||||
#include <QTextStream>
|
#include <QTextStream>
|
||||||
#include <QTimer>
|
|
||||||
#include <QtAlgorithms>
|
#include <QtAlgorithms>
|
||||||
#include <QLibraryInfo>
|
#include <QTimer>
|
||||||
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
|
|
||||||
@@ -508,7 +508,7 @@ void ModelManagerInterface::iterateQrcFiles(
|
|||||||
|
|
||||||
for (const Utils::FilePath &qrcFilePath : std::as_const(allQrcs)) {
|
for (const Utils::FilePath &qrcFilePath : std::as_const(allQrcs)) {
|
||||||
QrcParser::ConstPtr qrcFile = m_qrcCache.parsedPath(qrcFilePath.toFSPathString());
|
QrcParser::ConstPtr qrcFile = m_qrcCache.parsedPath(qrcFilePath.toFSPathString());
|
||||||
if (qrcFile.isNull())
|
if (!qrcFile)
|
||||||
continue;
|
continue;
|
||||||
callback(qrcFile);
|
callback(qrcFile);
|
||||||
}
|
}
|
||||||
|
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
#include "algorithm.h"
|
#include "algorithm.h"
|
||||||
#include "fileutils.h"
|
#include "fileutils.h"
|
||||||
#include "hostosinfo.h"
|
|
||||||
#include "qrcparser.h"
|
#include "qrcparser.h"
|
||||||
#include "qtcassert.h"
|
#include "qtcassert.h"
|
||||||
|
|
||||||
|
@@ -8,7 +8,6 @@
|
|||||||
#include "filepath.h"
|
#include "filepath.h"
|
||||||
|
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
#include <QSharedPointer>
|
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
|
|
||||||
@@ -60,7 +59,7 @@ private:
|
|||||||
private:
|
private:
|
||||||
FilePaths m_allQrcFiles;
|
FilePaths m_allQrcFiles;
|
||||||
mutable QHash<QUrl, FilePaths> m_fileCache;
|
mutable QHash<QUrl, FilePaths> m_fileCache;
|
||||||
mutable QHash<FilePath, QSharedPointer<QrcParser>> m_parserCache;
|
mutable QHash<FilePath, std::shared_ptr<QrcParser>> m_parserCache;
|
||||||
};
|
};
|
||||||
|
|
||||||
CacheEntry findInSearchPaths(const FilePath &filePath, FileHandler fileHandler,
|
CacheEntry findInSearchPaths(const FilePath &filePath, FileHandler fileHandler,
|
||||||
|
@@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
#include <qmljs/qmljstr.h> // Yes, the translations are still there
|
#include <qmljs/qmljstr.h> // Yes, the translations are still there
|
||||||
|
|
||||||
#include <QCoreApplication>
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QDomDocument>
|
#include <QDomDocument>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
@@ -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();
|
qCWarning(qrcParserLog) << "adding invalid qrc " << path << " to the cache:" << newParser->errorMessages();
|
||||||
{
|
{
|
||||||
QWriteLocker l(&m_mutex);
|
QWriteLocker l(&m_mutex);
|
||||||
QPair<QrcParser::Ptr,int> currentValue = m_cache.value(path, {QrcParser::Ptr(nullptr), 0});
|
QPair<QrcParser::Ptr, int> currentValue = m_cache.value(path, {{}, 0});
|
||||||
if (currentValue.first.isNull())
|
if (!currentValue.first)
|
||||||
currentValue.first = newParser;
|
currentValue.first = newParser;
|
||||||
currentValue.second += 1;
|
currentValue.second += 1;
|
||||||
m_cache.insert(path, currentValue);
|
m_cache.insert(path, currentValue);
|
||||||
|
@@ -7,8 +7,6 @@
|
|||||||
|
|
||||||
#include "filepath.h"
|
#include "filepath.h"
|
||||||
|
|
||||||
#include <QSharedPointer>
|
|
||||||
#include <QString>
|
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
@@ -34,8 +32,8 @@ public:
|
|||||||
QList<Utils::FilePath> sourceFiles;
|
QList<Utils::FilePath> sourceFiles;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef QSharedPointer<QrcParser> Ptr;
|
using Ptr = std::shared_ptr<QrcParser>;
|
||||||
typedef QSharedPointer<const QrcParser> ConstPtr;
|
using ConstPtr = std::shared_ptr<const QrcParser>;
|
||||||
~QrcParser();
|
~QrcParser();
|
||||||
bool parseFile(const QString &path, const QString &contents);
|
bool parseFile(const QString &path, const QString &contents);
|
||||||
QString firstFileAtPath(const QString &path, const QLocale &locale) const;
|
QString firstFileAtPath(const QString &path, const QLocale &locale) const;
|
||||||
|
@@ -119,25 +119,25 @@ void tst_QrcParser::firstInTest()
|
|||||||
void tst_QrcParser::cacheTest()
|
void tst_QrcParser::cacheTest()
|
||||||
{
|
{
|
||||||
QFETCH(QString, path);
|
QFETCH(QString, path);
|
||||||
QVERIFY(m_cache.parsedPath(path).isNull());
|
QVERIFY(!m_cache.parsedPath(path));
|
||||||
QrcParser::ConstPtr p0 = m_cache.addPath(path, QString());
|
QrcParser::ConstPtr p0 = m_cache.addPath(path, QString());
|
||||||
QVERIFY(!p0.isNull());
|
QVERIFY(p0);
|
||||||
QrcParser::ConstPtr p1 = m_cache.parsedPath(path);
|
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());
|
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);
|
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());
|
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);
|
QrcParser::ConstPtr p5 = m_cache.parsedPath(path);
|
||||||
QVERIFY(p5.data() == p4.data());
|
QVERIFY(p5.get() == p4.get());
|
||||||
m_cache.removePath(path);
|
m_cache.removePath(path);
|
||||||
QrcParser::ConstPtr p6 = m_cache.parsedPath(path);
|
QrcParser::ConstPtr p6 = m_cache.parsedPath(path);
|
||||||
QVERIFY(p6.data() == p5.data());
|
QVERIFY(p6.get() == p5.get());
|
||||||
m_cache.removePath(path);
|
m_cache.removePath(path);
|
||||||
QrcParser::ConstPtr p7 = m_cache.parsedPath(path);
|
QrcParser::ConstPtr p7 = m_cache.parsedPath(path);
|
||||||
QVERIFY(p7.isNull());
|
QVERIFY(!p7);
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QrcParser::simpleTest()
|
void tst_QrcParser::simpleTest()
|
||||||
|
Reference in New Issue
Block a user