From 188fdf7ceb5894d5e6f2e5d90d8d5ba6eb1601d9 Mon Sep 17 00:00:00 2001 From: Ahmad Samir Date: Sun, 4 Jun 2023 15:54:09 +0300 Subject: [PATCH] QFactoryLoader: add assert and explicitly cast to int Other parts of the code are expecting int. Change-Id: Iea73412c874adb2e6589e9b11607f313e1747d19 Reviewed-by: Thiago Macieira (cherry picked from commit 60f34fc9e368010a5eaae920e5e306e59abf8e73) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/plugin/qfactoryloader.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/corelib/plugin/qfactoryloader.cpp b/src/corelib/plugin/qfactoryloader.cpp index 669949b975b..e3649622bdd 100644 --- a/src/corelib/plugin/qfactoryloader.cpp +++ b/src/corelib/plugin/qfactoryloader.cpp @@ -356,6 +356,8 @@ QFactoryLoader::MetaDataList QFactoryLoader::metaData() const continue; metaData.append(std::move(parsed)); } + + Q_ASSERT(metaData.size() <= std::numeric_limits::max()); return metaData; } @@ -400,7 +402,7 @@ QMultiMap QFactoryLoader::keyMap() const { QMultiMap result; const QList metaDataList = metaData(); - for (int i = 0; i < metaDataList.size(); ++i) { + for (int i = 0; i < int(metaDataList.size()); ++i) { const QCborMap metaData = metaDataList.at(i).value(QtPluginMetaDataKeys::MetaData).toMap(); const QCborArray keys = metaData.value("Keys"_L1).toArray(); for (QCborValueConstRef key : keys) @@ -412,7 +414,7 @@ QMultiMap QFactoryLoader::keyMap() const int QFactoryLoader::indexOf(const QString &needle) const { const QList metaDataList = metaData(); - for (int i = 0; i < metaDataList.size(); ++i) { + for (int i = 0; i < int(metaDataList.size()); ++i) { const QCborMap metaData = metaDataList.at(i).value(QtPluginMetaDataKeys::MetaData).toMap(); const QCborArray keys = metaData.value("Keys"_L1).toArray(); for (QCborValueConstRef key : keys) {