qt5base-lts/tests/auto/corelib
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
..
animation Blacklist a QSequentialAnimationGroup autotest 2017-03-30 12:10:31 +00:00
codecs QTextCodec: add QStringView overloads 2017-04-06 12:05:33 +00:00
global tst_qmessagehandler: fix qMessagePattern for arm 2017-04-07 08:12:14 +00:00
io Merge remote-tracking branch 'origin/5.9' into dev 2017-04-20 12:31:27 +02:00
itemmodels Merge remote-tracking branch 'origin/5.9' into dev 2017-03-28 09:28:31 +02:00
json Merge remote-tracking branch 'origin/5.8' into 5.9 2017-03-27 10:42:08 +02:00
kernel QVariant: fix the test 2017-04-20 15:33:49 +00:00
mimetypes Build examples and tests only if their requirements are met 2017-03-22 15:55:55 +00:00
plugin QUuid: add fromString(QStringView/QLatin1String) 2017-04-20 17:02:44 +00:00
statemachine
thread Merge remote-tracking branch 'origin/5.9' into dev 2017-03-28 09:28:31 +02:00
tools Merge remote-tracking branch 'origin/5.9' into dev 2017-04-20 12:31:27 +02:00
xml Build examples and tests only if their requirements are met 2017-03-22 15:55:55 +00:00
corelib.pro Add support for Apple tvOS 2016-05-17 16:11:23 +00:00