diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2015-10-10 10:38:29 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-10-11 12:30:33 +0000 |
commit | 2463b4452da6267d23bf1008a6472b30690690bc (patch) | |
tree | f82456279092b0477108066cc5362a433770e65b /src | |
parent | a6ddae873bbe4c3cc68949f5a2758b5458422e7c (diff) |
QtCore: don't convert single characters to QString for QTextCodec::fromUnicode()
Use the fromUnicode(QChar *, int size) overload instead.
Saves 0.5KiB text size on Linux GCC 4.9 AMD64 release builds.
Change-Id: I1a1081e09bff4c2116288b8c2616e1bb7ee2bb42
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/io/qsettings.cpp | 5 | ||||
-rw-r--r-- | src/corelib/xml/qxmlstream.cpp | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp index b9993c454e..458109888f 100644 --- a/src/corelib/io/qsettings.cpp +++ b/src/corelib/io/qsettings.cpp @@ -632,8 +632,9 @@ void QSettingsPrivate::iniEscapedString(const QString &str, QByteArray &result, int startPos = result.size(); result.reserve(startPos + str.size() * 3 / 2); + const QChar *unicode = str.unicode(); for (i = 0; i < str.size(); ++i) { - uint ch = str.at(i).unicode(); + uint ch = unicode[i].unicode(); if (ch == ';' || ch == ',' || ch == '=') needsQuotes = true; @@ -687,7 +688,7 @@ void QSettingsPrivate::iniEscapedString(const QString &str, QByteArray &result, #ifndef QT_NO_TEXTCODEC } else if (useCodec) { // slow - result += codec->fromUnicode(str.at(i)); + result += codec->fromUnicode(&unicode[i], 1); #endif } else { result += (char)ch; diff --git a/src/corelib/xml/qxmlstream.cpp b/src/corelib/xml/qxmlstream.cpp index 13c84db9ae..69e2e5d5c1 100644 --- a/src/corelib/xml/qxmlstream.cpp +++ b/src/corelib/xml/qxmlstream.cpp @@ -3013,7 +3013,8 @@ void QXmlStreamWriterPrivate::checkIfASCIICompatibleCodec() #ifndef QT_NO_TEXTCODEC Q_ASSERT(encoder); // assumes ASCII-compatibility for all 8-bit encodings - const QByteArray bytes = encoder->fromUnicode(QStringLiteral(" ")); + QChar space = QLatin1Char(' '); + const QByteArray bytes = encoder->fromUnicode(&space, 1); isCodecASCIICompatible = (bytes.count() == 1); #else isCodecASCIICompatible = true; |