diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2016-05-30 12:31:48 -0300 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2016-05-31 19:40:03 +0000 |
commit | 2e4191eadce4cfe944afd0baf37f06bbcb65c5f4 (patch) | |
tree | 980148a888c6335ab3c08e8effd09b83fbed8668 /src/corelib/kernel/qobject_impl.h | |
parent | 08f0253c4afc352aadf8b138c04d6c55e4e91167 (diff) |
QObject::connect: reduce generated code size for statics and functors
Instead of placing the assignment of false in the impl() function, move
it to the inline QSlotObjectBase::compare() function. That means it's
assigned in one place (two, actually, inside qobject.cpp), instead of
for every static member, non-member or functor we connect or disconnect.
Change-Id: I87e17314d8b24ae983b1fffd1453623ad4c4dcb2
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/corelib/kernel/qobject_impl.h')
-rw-r--r-- | src/corelib/kernel/qobject_impl.h | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/corelib/kernel/qobject_impl.h b/src/corelib/kernel/qobject_impl.h index 6140ae775e..b4091a4f1c 100644 --- a/src/corelib/kernel/qobject_impl.h +++ b/src/corelib/kernel/qobject_impl.h @@ -126,7 +126,7 @@ namespace QtPrivate { inline void destroyIfLastRef() Q_DECL_NOTHROW { if (!m_ref.deref()) m_impl(Destroy, this, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR); } - inline bool compare(void **a) { bool ret; m_impl(Compare, this, Q_NULLPTR, a, &ret); return ret; } + inline bool compare(void **a) { bool ret = false; m_impl(Compare, this, Q_NULLPTR, a, &ret); return ret; } inline void call(QObject *r, void **a) { m_impl(Call, this, r, a, Q_NULLPTR); } protected: ~QSlotObjectBase() {} @@ -172,10 +172,9 @@ namespace QtPrivate { case Call: FuncType::template call<Args, R>(static_cast<QStaticSlotObject*>(this_)->function, r, a); break; - case Compare: - *ret = false; // not implemented - break; - case NumOperations: ; + case Compare: // not implemented + case NumOperations: + Q_UNUSED(ret); } } public: @@ -197,10 +196,9 @@ namespace QtPrivate { case Call: FuncType::template call<Args, R>(static_cast<QFunctorSlotObject*>(this_)->function, r, a); break; - case Compare: - *ret = false; // not implemented - break; - case NumOperations: ; + case Compare: // not implemented + case NumOperations: + Q_UNUSED(ret); } } public: |