From a5b647804bcf780930e4f7e3271622281c20fde4 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 8 Oct 2014 12:44:06 +0200 Subject: QFactoryLoader: de-duplicate two QStringLiterals When seemingly identical QStringLiterals are used in different functions, due to the use of lambdas and scoping, they produce different lambda types and thus duplicated QStringLiteral data. Fix by moving the QStringLiterals into inline functions and calling those instead. Change-Id: Ifaa124ec74e201ccc63fd9afce042f8b2ff22b9e Reviewed-by: Thiago Macieira --- src/corelib/plugin/qfactoryloader.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/corelib/plugin') diff --git a/src/corelib/plugin/qfactoryloader.cpp b/src/corelib/plugin/qfactoryloader.cpp index 411d1dfdd5..bd5032dcc0 100644 --- a/src/corelib/plugin/qfactoryloader.cpp +++ b/src/corelib/plugin/qfactoryloader.cpp @@ -290,11 +290,15 @@ void QFactoryLoader::refreshAll() } } +// avoid duplicate QStringLiteral data: +static inline QString metaDataKeyLiteral() { return QStringLiteral("MetaData"); } +static inline QString keysKeyLiteral() { return QStringLiteral("Keys"); } + QMultiMap QFactoryLoader::keyMap() const { QMultiMap result; - const QString metaDataKey = QStringLiteral("MetaData"); - const QString keysKey = QStringLiteral("Keys"); + const QString metaDataKey = metaDataKeyLiteral(); + const QString keysKey = keysKeyLiteral(); const QList metaDataList = metaData(); for (int i = 0; i < metaDataList.size(); ++i) { const QJsonObject metaData = metaDataList.at(i).value(metaDataKey).toObject(); @@ -308,8 +312,8 @@ QMultiMap QFactoryLoader::keyMap() const int QFactoryLoader::indexOf(const QString &needle) const { - const QString metaDataKey = QStringLiteral("MetaData"); - const QString keysKey = QStringLiteral("Keys"); + const QString metaDataKey = metaDataKeyLiteral(); + const QString keysKey = keysKeyLiteral(); const QList metaDataList = metaData(); for (int i = 0; i < metaDataList.size(); ++i) { const QJsonObject metaData = metaDataList.at(i).value(metaDataKey).toObject(); -- cgit v1.2.3