summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qmetaobject.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2025-04-15 22:26:31 +0200
committerMarc Mutz <marc.mutz@qt.io>2025-06-12 18:03:50 +0200
commit6c18b438a3787db9fb407653d6ebb373aba53ef1 (patch)
treefed02b2446898f365a190cf1f9e6e8616fb41d0c /src/corelib/kernel/qmetaobject.cpp
parentafdf37ad8f674bba9cdcf64c2f9028e28d6039eb (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.cpp3
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});
}
}