summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2015-12-29 14:10:50 +0100
committerMarc Mutz <marc.mutz@kdab.com>2016-01-04 20:35:33 +0000
commit5feebcc973af56184f9f568a81b17e774976fff7 (patch)
treec4a9b5f4b0b5be7bce5642b1891a834cc845be67 /src/corelib
parentcc2ea22a3050424c0dffe864146af1efc57369b4 (diff)
QMimeDatabase: replace a QStack<QString> with std::stack<QString, QStringList>
A QStringList is almost as efficient as a QVector<QString>. 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 <david.faure@kdab.com>
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/mimetypes/qmimedatabase.cpp12
1 files changed, 6 insertions, 6 deletions
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 <QtCore/QSet>
#include <QtCore/QBuffer>
#include <QtCore/QUrl>
-#include <QtCore/QStack>
#include <QtCore/QDebug>
#include <algorithm>
#include <functional>
+#include <stack>
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<QString> toCheck;
+ std::stack<QString, QStringList> 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);
}