From 58d2927861d3e57cac4f6db599e209d2bfb17a2c Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 13 Apr 2017 14:59:57 +0200 Subject: QXmlStream: optimize PrivateTagStack::addToStringStorage() De-duplicate the QString/Ref code paths by using QStringView instead. Keep the old overloads so we can centrally apply the qToStringView- IgnoringNull() optimization. Replace insert(p, ..) where p = size() with append(..). The code ensures in the lines before that the insertion position is the end of the string. Port the few QLatin1String arguments to addToStringStorage() to QStringViewLiteral. I also considered adding a QLatin1String() overload, but the test size increased, so the function wasn't pulling its own weight. This version saves 360B in text size on optimized GCC 6.1 Linux AMD64 builds. Change-Id: I4b759fddc38b1f97a7218954e756cc19400922e9 Reviewed-by: Lars Knoll --- src/corelib/xml/qxmlstream.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/corelib/xml/qxmlstream.cpp') diff --git a/src/corelib/xml/qxmlstream.cpp b/src/corelib/xml/qxmlstream.cpp index 3d600c23806..195466e8037 100644 --- a/src/corelib/xml/qxmlstream.cpp +++ b/src/corelib/xml/qxmlstream.cpp @@ -775,8 +775,8 @@ QXmlStreamPrivateTagStack::QXmlStreamPrivateTagStack() tagStackStringStorage.reserve(32); tagStackStringStorageSize = 0; NamespaceDeclaration &namespaceDeclaration = namespaceDeclarations.push(); - namespaceDeclaration.prefix = addToStringStorage(QLatin1String("xml")); - namespaceDeclaration.namespaceUri = addToStringStorage(QLatin1String("http://www.w3.org/XML/1998/namespace")); + namespaceDeclaration.prefix = addToStringStorage(QStringViewLiteral("xml")); + namespaceDeclaration.namespaceUri = addToStringStorage(QStringViewLiteral("http://www.w3.org/XML/1998/namespace")); initialTagStackStringStorageSize = tagStackStringStorageSize; } -- cgit v1.2.3