qt5base-lts/tests/auto/corelib/plugin/quuid
Marc Mutz 7d4bf142d7 QUuid: add fromString(QStringView/QLatin1String)
As for the formatting code, de-duplicate the parsing code by only
parsing char*s, converting QChars to Latin-1 first in a small buffer.

The QUuid(const char*) ctor performed no length checking, relying
instead on the checks performed within _q_uuidFromHex(), which
includes an implicit check for premature end (because NUL is not
a valid token for the parser).

The (QString) and (QByteArray) ctors did perform length checking.
To the extent possible, this is removed, since it is handled by
_q_uuidFromHex(). Failure cases need not be optimized. Only the
QLatin1String overload needs to do some checking, because views in
general are not NUL-terminated. The QStringView overload can just
append a NUL when it converts to Latin-1.

The only check I added to _q_uuidFromHex() is that for src ==
nullptr. It would otherwise be duplicated in several callers.

While touching the internal functions, port to passing and returning
by value.

Saves 1.6KiB in text size on optimized GCC 6.1 Linux AMD64 builds,
even though we added new API.

Port some users to the new functions. Expand fromString() test.

[ChangeLog][QtCore][QUuid] Added fromString(QStringView/QLatin1String).

Change-Id: I519339419129550c86e0ea80514865cd6a768f5d
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-04-20 17:02:44 +00:00
..
test Add Objective-C specific type converters to QUuid. 2015-11-04 21:23:06 +00:00
testProcessUniqueness Updated license headers 2016-01-21 18:55:18 +00:00
.gitignore Moving relevant tests to corelib/plugin 2011-09-01 12:42:51 +02:00
quuid.pro Tests: Remove CONFIG += parallel_test. 2015-09-05 07:16:50 +00:00
tst_quuid_darwin.mm QUuid: add fromString(QStringView/QLatin1String) 2017-04-20 17:02:44 +00:00
tst_quuid.cpp QUuid: add fromString(QStringView/QLatin1String) 2017-04-20 17:02:44 +00:00