summaryrefslogtreecommitdiffstats
path: root/src/corelib/tracing/qctf.cpp
diff options
context:
space:
mode:
authorAhmad Samir <a.samirh78@gmail.com>2024-06-03 21:39:26 +0300
committerAhmad Samir <a.samirh78@gmail.com>2024-06-30 12:54:28 +0300
commita3142afe212a0130ae29ea44c67393fb4880011f (patch)
treef8e538e1aa4ef470bf1c516e8bc202641b67d29f /src/corelib/tracing/qctf.cpp
parentdd7ad8f8ae44e1ad01c370cd4a0558c5e66efeb8 (diff)
QCtf: use QDirListing directly instead of QDir::entryList()
This circumvents the cost of constructing a QDir and a QStringList. Drive by: QString::contains() has an overload for QL1SV. Also use qEnvironmentVariable() since we want a QString anyway. Change-Id: I37451d27dfa52bde4793b1a50cea532f88dcd1fd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/tracing/qctf.cpp')
-rw-r--r--src/corelib/tracing/qctf.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/corelib/tracing/qctf.cpp b/src/corelib/tracing/qctf.cpp
index ff81d0a678c..1d50b830e43 100644
--- a/src/corelib/tracing/qctf.cpp
+++ b/src/corelib/tracing/qctf.cpp
@@ -7,12 +7,15 @@
#include <qpluginloader.h>
#include <qfileinfo.h>
#include <qdir.h>
+#include <qtenvironmentvariables.h>
#include <qjsonarray.h>
#include "qctf_p.h"
QT_BEGIN_NAMESPACE
+using namespace Qt::StringLiterals;
+
static bool s_initialized = false;
static bool s_triedLoading = false;
static bool s_prevent_recursion = false;
@@ -22,14 +25,12 @@ static QCtfLib* s_plugin = nullptr;
#if QT_CONFIG(library) && defined(QT_SHARED)
#if defined(Q_OS_ANDROID)
-static QString findPlugin(const QString &plugin)
+static QString findPlugin(QLatin1StringView plugin)
{
- QString pluginPath = QString::fromUtf8(qgetenv("QT_PLUGIN_PATH"));
- QDir dir(pluginPath);
- const QStringList files = dir.entryList(QDir::Files);
- for (const QString &file : files) {
- if (file.contains(plugin))
- return QFileInfo(pluginPath + QLatin1Char('/') + file).absoluteFilePath();
+ const QString pluginPath = qEnvironmentVariable("QT_PLUGIN_PATH");
+ for (const auto &entry : QDirListing(pluginPath, QDirListing::IteratorFlag::FilesOnly)) {
+ if (entry.fileName().contains(plugin))
+ return entry.absoluteFilePath();
}
return {};
}
@@ -46,7 +47,7 @@ static bool loadPlugin(bool &retry)
#endif
#elif defined(Q_OS_ANDROID)
- QString plugin = findPlugin(QStringLiteral("QCtfTracePlugin"));
+ const QString plugin = findPlugin("QCtfTracePlugin"_L1);
if (plugin.isEmpty()) {
retry = true;
return false;