qt5base-lts/qmake/generators
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
..
mac Add QMake variables for development team and provisioning profile 2017-03-13 06:42:15 +00:00
unix Fix precompiled headers on Apple platforms, with multiple architectures 2017-04-14 00:00:56 +00:00
win32 QUuid: add fromString(QStringView/QLatin1String) 2017-04-20 17:02:44 +00:00
makefile.cpp Preserve last modification timestamps of installed program files 2017-04-13 11:33:21 +00:00
makefile.h don't pass qmake configure arguments to sub-projects 2017-01-06 20:09:18 +00:00
makefiledeps.cpp Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-01 06:02:55 +01:00
makefiledeps.h qmake: replace a uint:1 with a bool 2016-08-15 22:16:09 +00:00
metamakefile.cpp Merge remote-tracking branch 'origin/5.6' into 5.7 2016-04-29 17:55:20 +02:00
metamakefile.h Updated license headers 2016-01-21 18:55:18 +00:00
projectgenerator.cpp Merge remote-tracking branch 'origin/5.8' into 5.9 2017-02-08 15:49:18 +01:00
projectgenerator.h Updated license headers 2016-01-21 18:55:18 +00:00
xmloutput.cpp Merge remote-tracking branch 'origin/5.6' into dev 2016-02-11 08:25:04 +01:00
xmloutput.h Updated license headers 2016-01-21 18:55:18 +00:00