From c05f2985eb90c7e18dee99676f0a5da3239e30b9 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 23 Feb 2016 22:37:17 +0100 Subject: QMimeTypeParser: scope a variable better The variable being a QVector, this means replacing default construction followed by one move-assignment per loop iteration with a StartElement state with RVO-catching a return value. Saves ~320b in text size on optimized GCC 5.3 Linux AMD64 builds. Change-Id: I618d31ad0816f9ad1a89a6b2e39481258f1e0878 Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/corelib/mimetypes/qmimetypeparser.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/mimetypes/qmimetypeparser.cpp b/src/corelib/mimetypes/qmimetypeparser.cpp index cdb50b25e7..9ed345d37e 100644 --- a/src/corelib/mimetypes/qmimetypeparser.cpp +++ b/src/corelib/mimetypes/qmimetypeparser.cpp @@ -206,12 +206,11 @@ bool QMimeTypeParserBase::parse(QIODevice *dev, const QString &fileName, QString QList rules; // toplevel rules QXmlStreamReader reader(dev); ParseState ps = ParseBeginning; - QXmlStreamAttributes atts; while (!reader.atEnd()) { switch (reader.readNext()) { - case QXmlStreamReader::StartElement: + case QXmlStreamReader::StartElement: { ps = nextState(ps, reader.name()); - atts = reader.attributes(); + const QXmlStreamAttributes atts = reader.attributes(); switch (ps) { case ParseMimeType: { // start parsing a MIME type name const QString name = atts.value(QLatin1String(mimeTypeAttributeC)).toString(); @@ -297,6 +296,7 @@ bool QMimeTypeParserBase::parse(QIODevice *dev, const QString &fileName, QString default: break; } + } break; // continue switch QXmlStreamReader::Token... case QXmlStreamReader::EndElement: // Finished element -- cgit v1.2.3