diff options
| author | Ahmad Samir <a.samirh78@gmail.com> | 2024-06-03 21:39:26 +0300 |
|---|---|---|
| committer | Ahmad Samir <a.samirh78@gmail.com> | 2024-06-30 12:54:28 +0300 |
| commit | a3142afe212a0130ae29ea44c67393fb4880011f (patch) | |
| tree | f8e538e1aa4ef470bf1c516e8bc202641b67d29f /src/corelib/tracing/qctf.cpp | |
| parent | dd7ad8f8ae44e1ad01c370cd4a0558c5e66efeb8 (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.cpp | 17 |
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; |
