From 5feebcc973af56184f9f568a81b17e774976fff7 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 29 Dec 2015 14:10:50 +0100 Subject: QMimeDatabase: replace a QStack with std::stack A QStringList is almost as efficient as a QVector. More importantly, the QStringList case can share code with the myriad of other QStringList users, in particular because std::stack is but the thinnest of wrappers around its underlying container. Saves 1400b in text size on optimized GCC 4.9 Linux AMD64 builds. Change-Id: If37ed55802aa8a529ca772df465990ded0aaba7f Reviewed-by: David Faure --- src/corelib/mimetypes/qmimedatabase.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/mimetypes/qmimedatabase.cpp b/src/corelib/mimetypes/qmimedatabase.cpp index 57006db160..764ac55563 100644 --- a/src/corelib/mimetypes/qmimedatabase.cpp +++ b/src/corelib/mimetypes/qmimedatabase.cpp @@ -47,11 +47,11 @@ #include #include #include -#include #include #include #include +#include QT_BEGIN_NAMESPACE @@ -218,13 +218,13 @@ bool QMimeDatabasePrivate::inherits(const QString &mime, const QString &parent) { const QString resolvedParent = provider()->resolveAlias(parent); //Q_ASSERT(provider()->resolveAlias(mime) == mime); - QStack toCheck; + std::stack toCheck; toCheck.push(mime); - while (!toCheck.isEmpty()) { - const QString current = toCheck.pop(); - if (current == resolvedParent) + while (!toCheck.empty()) { + if (toCheck.top() == resolvedParent) return true; - const auto parents = provider()->parents(current); + const auto parents = provider()->parents(toCheck.top()); + toCheck.pop(); for (const QString &par : parents) toCheck.push(par); } -- cgit v1.2.3