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}); } } diff --git a/src/corelib/kernel/qmetaobject_p.h b/src/corelib/kernel/qmetaobject_p.h index eb41f40ec41..f56d5aacd89 100644 --- a/src/corelib/kernel/qmetaobject_p.h +++ b/src/corelib/kernel/qmetaobject_p.h @@ -45,8 +45,8 @@ public: QArgumentType(QMetaType metaType) : _metaType(metaType) {} - QArgumentType(const QByteArray &name) - : _metaType(QMetaType{qMetaTypeTypeInternal(qToByteArrayViewIgnoringNull(name))}), _name(name) + explicit QArgumentType(QByteArrayView name) + : _metaType(QMetaType{qMetaTypeTypeInternal(name)}), _name(name) {} QMetaType metaType() const noexcept { return _metaType; } @@ -69,7 +69,7 @@ private: Q_DECLARE_EQUALITY_COMPARABLE_NON_NOEXCEPT(QArgumentType) QMetaType _metaType; - QByteArray _name; + QByteArrayView _name; }; Q_DECLARE_TYPEINFO(QArgumentType, Q_RELOCATABLE_TYPE);