diff options
author | Marc Mutz <marc.mutz@qt.io> | 2023-07-19 21:27:56 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2023-07-21 18:22:00 +0200 |
commit | ff75ace02d62572be5a8b686b0ea15e909081575 (patch) | |
tree | 2a54a308ca77c6c59065c943eb8ac94dbedbf36b /src/corelib/kernel/qobject.cpp | |
parent | 18857db2dd0ededda0c9a6ba1731327f4121042a (diff) |
Port QObjectPrivate::connect() to SlotObjUniquePtr internally
This is for consistency with QObject::connectImpl() and
QObjectPrivate::connectImpl(), if nothing else.
See the commit message of the QObject::connectImpl() porting patch for
why we leave the function signature unchanged (key-word:
tail-callability).
Pick-to: 6.6 6.5
Change-Id: I515d3be4a5126f9f4738dd7bde5174377faf2343
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel/qobject.cpp')
-rw-r--r-- | src/corelib/kernel/qobject.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index aae6f73957..baad864a39 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -5334,20 +5334,19 @@ QMetaObject::Connection QObjectPrivate::connect(const QObject *sender, int signa */ QMetaObject::Connection QObjectPrivate::connect(const QObject *sender, int signal_index, const QObject *receiver, - QtPrivate::QSlotObjectBase *slotObj, + QtPrivate::QSlotObjectBase *slotObjRaw, Qt::ConnectionType type) { + QtPrivate::SlotObjUniquePtr slotObj(slotObjRaw); if (!sender) { qCWarning(lcConnect, "QObject::connect: invalid nullptr parameter"); - if (slotObj) - slotObj->destroyIfLastRef(); return QMetaObject::Connection(); } const QMetaObject *senderMetaObject = sender->metaObject(); signal_index = methodIndexToSignalIndex(&senderMetaObject, signal_index); - return QObjectPrivate::connectImpl(sender, signal_index, receiver, /*slot*/ nullptr, slotObj, - type, /*types*/ nullptr, senderMetaObject); + return connectImpl(sender, signal_index, receiver, /*slot*/ nullptr, slotObj.release(), + type, /*types*/ nullptr, senderMetaObject); } /*! |