| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the macro Q_OS_WIN64 was checked, causing warnings:
tools\qstring.cpp(6183): warning C4311: 'reinterpret_cast': pointer truncation from 'void *' to 'unsigned long'
tools\qstring.cpp(6183): warning C4302: 'reinterpret_cast': truncation from 'void *' to 'unsigned long'
when compiling WinRT/64bit, where it is not defined.
Change-Id: Ib9d8405108c85170aba18b13f9c64083136bc5ee
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Found by UBSan:
src/corelib/tools/qstring.cpp:587:42: runtime error: load of misaligned address 0x2acbf4b7551b for type 'const long long int', which requires 8 byte alignment
src/corelib/json/qjson_p.h:405:30: runtime error: store to misaligned address 0x0000019b1e52 for type 'quint64', which requires 8 byte alignment
src/corelib/tools/qhash.cpp:116:27: runtime error: load of misaligned address 0x2b8f9ce80e85 for type 'const qlonglong', which requires 8 byte alignment
src/corelib/tools/qhash.cpp:133:26: runtime error: load of misaligned address 0x2b8f9ce80e8d for type 'const ushort', which requires 2 byte alignment
Fix by memcpy()ing into a local variable. Wrap this trick in
template functions in qsimd_p.h. These are marked as always-
inline and use __builtin_memcpy() where available in an
attempt to avoid the memcpy() function call overhead in debug
builds.
While this looks prohibitively expensive, from the pov of the
C++ abstract machine, it is 100% equivalent, except for the
absence of undefined behavior. In one case, the cast produces
a local temporary which is then copied into the function, and
in the other case, that local variable comes from return value
of qUnalignedLoad().
Consequently, GCC compiles these two versions into identical
assembler code (only verfied for ucstrncmp, but there's no
reason to believe that it wouldn't hold for the other cases,
too).
Task-number: QTBUG-51651
Change-Id: Ia50d4a1d7580b6f803e0895c9f3d89c7da37840c
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
Handle special case mapping of length 1 explicitly;
Skip calculating of high surrogate for the same plane;
Optimize branch prediction with Q_LIKELY/Q_UNLIKELY;
Replace peekNext() + advance() with just next() in the caller function.
Change-Id: I0d37969749bd8ca855321242e6a0e72c405c5f8d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
...even if reserve() hasn't been called before.
[ChangeLog][QtCore][QString] resize() will no longer shrink the
capacity. That means resize(0) now reliably preserves capacity().
Change-Id: If499a20990bbf3a20553da14e50a42918d310c9f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
Qdoc gave warning "Cannot link this to anything"
Task-number: QTBUG-43810
Change-Id: Id903040ed7b2860a2ec64a52f7fbe8269c6927b0
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
If the LHS is detached and has existing capacity that is large
enough to hold the RHS, re-use the memory instead of allocating
a new buffer and throwing away the old.
Change-Id: I53d42825da92c264c7301e8e771cba9fb35c321b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
When that happens, we need to detach (in-place conversion won't work),
so we recurse back into the same function, but the template version that
does detaching.
Task-number: QTBUG-49181
Change-Id: Idba8c29717f34c70a58fffff1412fea3acc95f98
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
| |
and implement TitlecaseTraits as well,
to be re-used in the following commit.
Change-Id: I5c0bff42fe3b9bc9c2454cc16916cc2be87f604f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's used from a different TU, too, so we can't rely on the
compiler to inspect it to draw this conclusion itself.
This function has technically not a wide contract, because
the output buffer needs to be large enough to hold the result.
However, this precondition cannot be checked from within the
function, therefore no assertion can ever be added and the
nothrow marker becomes acceptable (even desireable).
Change-Id: I2dc6c4f3d9d8147c6483865c5c4bbc8e9af291b7
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
| |
Duplicate identifiers were introduced for QString code snippets,
resulting in the wrong snippets to be quoted.
Change-Id: I75e9c99cbc73bf39262079f7f53342a6ac90c2a7
Task-number: QTBUG-49111
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
|
|
|
|
|
|
|
| |
Change-Id: I391be8bda3a5cb4873b89b437d2b76b1cd88261f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
A pending change in uic depends on this.
[ChangeLog][QtCore][QLatin1String] Added default constructor.
Change-Id: Ie6f5dfc7b38683a488b0ff7f31404800ef5ee188
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
| |
QLatin1String wasn't really tested except as a drive-by.
Unearthed a discrepancy with docs. Fixed the docs.
Change-Id: I1246bb33888132edbc4e22da792a480a156357bf
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
| |
This is prone to ambiguities, even though we currently don't run
into them.
Use QChar::isNull() instead.
Change-Id: I71843878b3f4f8a5deae2ef57a6f6628461be216
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
|
|
|
|
|
| |
Change-Id: Ia3a54f296b1edcdce5950bf7acad1b4436d9564a
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
| |
Change-Id: I00654b72a654c7b2a762ace773a9caef37b1bdd5
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
|
|
|
|
|
|
| |
A function cannot be both a member and a non-member of the same class.
Change-Id: I07d1e04c09fea2ba1171b3692e716660044cd37a
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
doc/global/qt-cpp-defines.qdocconf
src/3rdparty/forkfd/forkfd.c
src/corelib/codecs/qtextcodec.cpp
src/corelib/kernel/qmetatype.cpp
src/corelib/tools/qset.qdoc
src/gui/accessible/qaccessible.cpp
src/gui/image/qpixmapcache.cpp
src/opengl/qgl.cpp
src/tools/qdoc/generator.cpp
src/widgets/kernel/qwidget.cpp
tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
Change-Id: I4fbe1fa756a54c6843aa75f4ef70a1069ba7b085
|
| |
| |
| |
| |
| |
| |
| | |
Found with GCC's -Wcast-qual.
Change-Id: Ia0aac2f09e9245339951ffff13c8d4b2920a11fb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are multiple QString and QStringRef functions that document
behavior "if n is greater than size(), ...", but a comprehensive,
correct statement is "if n is greater than or equal to size(), ...".
Change-Id: I5d2112e08013edaf6f2f6d7e8a6740ea26a076e2
Task-number: QTBUG-47479
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/plugins/platforms/windows/qwindowsopengltester.cpp
Change-Id: Ia7abeba9395ccf84e2fa81b91a5725a86dedb9fe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Somehow the const int is no longer understood to be an immediate. GCC
4.8 still compiles this fine.
qstring.cpp:316:34: error: the fifth argument must be an 8-bit immediate
Change-Id: Ib056b47dde3341ef9a52ffff13ef24d541833abc
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
These are already held in QVectors.
Change-Id: I6fe831ba5b75d792fd13e63ef0d2e178b52e1107
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Had to mark {,c,const}{begin,end}() inline, since they are, and mingw
complains about inconsistent dllimport attributes.
[ChangeLog][QtCore][QString] Added rbegin(), crbegin(), rend(), crend(),
and reverse_iterator and const_reverse_iterator typedefs.
Task-number: QTBUG-25919
Change-Id: I1d48729c76e510c1e49c0e5dc41691aa662fdf21
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/global/qglobal.cpp
src/corelib/global/qglobal.h
src/corelib/global/qsysinfo.h
src/corelib/global/qsystemdetection.h
src/corelib/kernel/qobjectdefs.h
src/plugins/plugins.pro
tests/auto/widgets/itemviews/qlistview/qlistview.pro
Change-Id: Ib55aa79d707c4c1453fb9d697f6cf92211ed665c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently when a developer uses a string like
QString("%1%3%2").arg(x).arg(y).arg(z) he can be bitten by the
sequential replacement done by QString. Adding an example with a little
explanation should help future Qt user avoid generating buggy strings.
Task-number: QTBUG-44044
Change-Id: I81e20af8d9fb2a07e12ec61dcd5bb4544d863777
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Fixed a few qdoc errors.
Change-Id: I9ede1c1d3b22e9613978e31722c8140ae966194e
Task-number: QTBUG-46796
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Missing part of QString API.
[ChangeLog][QtCore][QStringRef] Added truncate(int).
Change-Id: I49e218daf8f47fcd3dad131155e0abc8e2a133e5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/global/qnamespace.qdoc
src/corelib/io/qwindowspipereader.cpp
src/corelib/io/qwindowspipereader_p.h
src/corelib/statemachine/qstatemachine.cpp
src/corelib/statemachine/qstatemachine_p.h
src/plugins/platforms/xcb/qxcbconnection.h
tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
tests/auto/tools/qmake/tst_qmake.cpp
tests/manual/touch/main.cpp
Change-Id: I917d694890e79ee3da7d65134b5b085e23e0dd62
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-36985
Change-Id: Ia98654f88cf5da77245b3fcd903b860d12862fc2
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/statemachine/qstatemachine.cpp
src/corelib/statemachine/qstatemachine_p.h
src/gui/painting/qdrawhelper.cpp
src/plugins/platforms/xcb/qxcbnativeinterface.cpp
src/plugins/platforms/xcb/qxcbwindow.cpp
src/plugins/platforms/xcb/qxcbwindow.h
src/testlib/qtestblacklist.cpp
src/tools/qdoc/node.cpp
src/tools/qdoc/node.h
tests/auto/gui/painting/qcolor/tst_qcolor.cpp
Change-Id: I6c78b7b162001712d5774293f501b06b4ff32684
|
| |\
| | |
| | |
| | | |
Change-Id: I004854a25ebbf12b1fda88900162fe7878716c58
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Use the name "OS X" instead of "Mac OS X", "Mac OS" and "OSX",
and mention iOS. Replace "Carbon Preferences API" by
"CFPreferences API" in the QSettings documentation.
Change-Id: Ia7f9fb874276c7c445a1649df521b96ff43daa0c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
To avoid source-incompatibilites, wrap in QT_DEPRECATED_SINCE(5, 5)
in public headers.
Change-Id: I6117e8a6b11200d2f1a0a94a0e87d5c27538218e
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
|\| |
| | |
| | |
| | | |
Change-Id: I04f9f2749f68c0cb5a427b8d84e43b44bb143e4d
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I479a731780dfce81e138d1aca950385437266763
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
|\| |
| | |
| | |
| | | |
Change-Id: If9fd98525b6b4ca07e5e006fc98bf372a73b8a21
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This isn't defined or used anywhere else.
Change-Id: I9a75ad8521ae4e5cbbe5ffff13d2356883b82dbc
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Improves code clarity.
Change-Id: If77eb644b1505c84783c907333526a4f08bb75a9
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The port from split() to splitRef() speeds up typical section()
calls (where the separator is included) by ca. 1/3.
The complete truth includes that section() calls where the
separator is not found seem to have gotten twice slower.
But that's a corner-case.
Change-Id: I7e957cb65fccfd095ac522d523aef3464425e4e4
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Instead of creating lots of temporary QString objects, use QStringRefs.
Together with the two other (micro) optimizations before, this speeds
up section() by up to 2x (section_regex(IPv6)).
No test has become slower.
Change-Id: I514667004f82ddc1518fe3ee699ec5fbf96bb82f
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QString::append(QStringRef) exists, and so should prepend().
QString::append(const QChar *,int) exists, and so should prepend().
[ChangeLog][QtCore][QString] Added prepend(QStringRef) and prepent(const QChar *, int) overloads.
Change-Id: I3eca41045f7c481be473507e23e92690f3ed7ba3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The corresponding QString::append() overloads exists,
and so should insert().
[ChangeLog][QtCore][QString] Added insert(int, QStringRef),
insert(int, const char*) and insert(int, QByteArray).
Change-Id: I1cf43fe8908319e2a57415945718b72e69ca0fb3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/plugins/platforms/xcb/qxcbnativeinterface.cpp
src/plugins/platforms/xcb/qxcbnativeinterface.h
Change-Id: I31b38ba439b9341d51a01c0fd54bea33f7410076
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is quite good if space isn't a constraint: the unrolling ensures
faster execution and limits the number of iterations. But it's long.
Both Clang and GCC set the predefined macro __OPTIMIZE_SIZE__ if -Os is
in effect. ICC does not; MSVC is untested but there are no macros for
this effect listed in its documentation.
Change-Id: I1a800c709d3543699131ffff13c48919a9a79ec3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-43337
Change-Id: I379dfe3f6909de5a63a67261834ea0edff875f9d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This improves the previous algorithm in two aspects:
1. It parses the format string in a single pass instead of
two, as was previously the case, storing all the
information the result construction pass needs in a
pair<QStringRef, int>.
This alone would slow the algorithm down, but without it, it's
hard to make the following work:
2. It avoids reallocations by calculating the size of the
result and using the Qt::Uninitialized QString ctor.
This speeds up the following test case
QString str("%1 %2 %3 %4 %5 %6 %7 %8 %9 foo %10 %11 bar"); // not timed
// (arguments converted to QString outside loop)
str = str.arg("one", "2", "3", "4", "5", "6", "7", "8", "9");
str = str.arg("ahoy", "there");
from tst_qstring, which heavily favors the previous result
construction loop due to the tiny (but non-zero) amount of
verbatim text in between placeholders, by 25%:
Qt 5.4: 1.50µs
no map: 0.77µs (7b5ba56b0ab55fcaf79fbf9aad70bf767c938e15)
this change: 0.58µs
Change-Id: I41ec86b7a21b4b25b3bc669ff2e3b2cc73513597
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
tools\qstring.cpp(243) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data
io\qdebug.cpp(287) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data
io\qdebug.cpp(292) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data
io\qdebug.cpp(305) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data
io\qdebug.cpp(312) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data
Change-Id: I20b92b0783f4859e9da83364b4ec86dd8bbd1c4c
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, number() was implemented in terms of setNum().
That makes no sense whatsoever. It creates a temporary
value which requires the function to have an exception
table and an unwinding trampoline. It also introduces
a default constructor (in number()) and a copy assignment
(in setNum()), which breaks the chain of RVOs originating
in the QLocaleData functions.
Instead, implement setNum() in terms of number().
This makes setNum() such a premature pessimisation that
it's probably best to deprecate it in the near future.
There are not many users of it in qtbase left, and it
just pollutes the QString interface.
Effects on Linux GCC 4.9 stripped release builds:
text -708B
data +-0B
relocs +-0
Change-Id: I015c9ddb1ba9c98c2c55e38e54ef7894954ac4ca
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
asprintf() is a GNU extension that prints into a string it
allocates internally. Arguably, that's a better name for
QString::sprintf() since it also allocates memory internally.
The main problem with QString::sprintf() isn't that it's
dangerous to use (it is), but that it's not static. It also
returns a reference instead of by-value, breaking RVO.
There is a comment about removing this function completely
in Qt 6.0, but it remains the only printf-style function
in Qt that can allocate the target string, so it's vital
for logging, e.g., and the recommended replacement code
(http://linux.die.net/man/3/vsnprintf) is a nightmare.
So this patch adds static (v)asprintf() methods to replace it.
Further patches will fix up all in-tree callers and finally
deprecate the old (v)sprintf().
Test coverage is provided through the existing tests of
sprintf(), which is implemented in terms of asprintf().
Arguably, the in-tree callers show that QByteArray would
benefit from having an asprintf(), too, as most of the
in-tree code works around its lack with calls
to to{Latin1,Local8Bit}() after using the QString version.
[ChangeLog][QtCore][QString] Added asprintf(), vasprintf().
Change-Id: I8510f8d67c22230653ec0f1c252c01bc95f3c386
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|