diff options
| author | Marc Mutz <marc.mutz@qt.io> | 2025-04-15 22:26:31 +0200 |
|---|---|---|
| committer | Marc Mutz <marc.mutz@qt.io> | 2025-06-12 18:03:50 +0200 |
| commit | 6c18b438a3787db9fb407653d6ebb373aba53ef1 (patch) | |
| tree | fed02b2446898f365a190cf1f9e6e8616fb41d0c /src/corelib/kernel/qmetaobject.cpp | |
| parent | afdf37ad8f674bba9cdcf64c2f9028e28d6039eb (diff) | |
QMetaObject: port QArgumentType to QByteArrayView
Now that argumentTypesFromString() actually doesn't normalize types
anymore, all type names are substrings of the signature, and so
QByteArrayView suffices (was: QByteArray) to hold the result.
QArgumentType in only used transitively, during QMetaObject member
function or QObject::connect() calls, so the source string will also
never go out of scope before the QArgumentType object that references
it.
As a drive-by, make the QArgumentType ctor explicit and port from
QVLA::op+=() to emplace_back().
No discernable impact on tst_bench_qobject's connect_disconnect.
Task-number: QTBUG-135572
Change-Id: If6544917b9df8191a256dc2a67e31c6b7e5a38cb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel/qmetaobject.cpp')
| -rw-r--r-- | src/corelib/kernel/qmetaobject.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index 5f2fccfa5a8..bee788f1d5b 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -832,8 +832,7 @@ static void argumentTypesFromString(const char *str, const char *end, --level; ++str; } - QByteArray argType(begin, str - begin); - types += QArgumentType(std::move(argType)); + types.emplace_back(QByteArrayView{begin, str - begin}); } } |
