qt6-bb10/src/corelib/kernel
Lars Knoll de4a73ebd6 Inline access to the QBindingStorage
And inline the fast checks inside the methods in QBindingStorage.
This allows QObjectBindableProperty and friends to inline all the
fast checks and almost completely eliminates the overhead for property
accesses when no bindings are being used.

Read and write times of QObject based properties when no bindings
are being used:
                                              Read       Write
Old style property:                           3.8ns       7.3ns
QObjectBindableProperty (no notification):    4.5ns       4.3ns
QObjectBindableProperty (with signal):        4.5ns       7.6ns
QObjectBindableProperty (inline accessors):   3.2ns       3.4ns

Numbers without this patch:

Old style property:                           3.8ns       7.9ns
QObjectBindableProperty (no notification):    7.2ns       7.7ns
QObjectBindableProperty (with signal):        7.2ns      16.0ns
QObjectBindableProperty (inline accessors):   6.3ns       6.7ns

Change-Id: Ifd1fa3a489c3be8b1468c0b88af547aac397f412
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 98c82fb445acf45cc4c4bc86a5adda43358127bf)
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-11-30 23:02:27 +00:00
..
QEVENTDISPATCHER_CF_LICENSE.txt
kernel.pri QMetaContainer: Consistently coerce types 2020-10-19 22:11:50 +02:00
qabstracteventdispatcher.cpp QWinEventNotifier: unlink from event dispatcher 2020-11-10 17:56:51 +02:00
qabstracteventdispatcher.h QWinEventNotifier: unlink from event dispatcher 2020-11-10 17:56:51 +02:00
qabstracteventdispatcher_p.h
qabstractnativeeventfilter.cpp
qabstractnativeeventfilter.h
qassociativeiterable.cpp Doc: Fix documentation warnings for QIterable and related classes 2020-10-29 18:38:08 +01:00
qassociativeiterable.h Replace discouraged Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPE 2020-11-30 17:16:21 +01:00
qbasictimer.cpp
qbasictimer.h Replace discouraged Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPE 2020-11-30 17:16:21 +01:00
qcfsocketnotifier.cpp
qcfsocketnotifier_p.h
qcore_foundation.mm doc: Add brief and group for native type conversions 2020-10-13 10:44:02 +02:00
qcore_mac.mm Handle simulator platforms when parsing LC_BUILD_VERSION load command 2020-08-19 04:06:54 +00:00
qcore_mac_p.h Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qcore_unix.cpp
qcore_unix_p.h Remove obsolete native client platform 2020-09-03 14:51:13 +02:00
qcoreapplication.cpp QCoreApplication: add doc to discourage use of processEvents 2020-11-20 11:38:03 -08:00
qcoreapplication.h Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qcoreapplication_mac.cpp Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qcoreapplication_p.h Purge QCoreApplicationPrivate::cloneEvent and overrides 2020-11-12 15:25:06 +01:00
qcoreapplication_win.cpp Rename remaining QEvent variables to m_ convention; init m_reserved 2020-11-10 19:08:44 +01:00
qcorecmdlineargs_p.h
qcoreevent.cpp Disable copying and assigning of QEvent 2020-11-19 03:16:48 +00:00
qcoreevent.h Return subclass type from overrides of QEvent::clone 2020-11-23 11:52:25 +01:00
qcoreglobaldata.cpp
qcoreglobaldata_p.h Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qdeadlinetimer.cpp Doc: Fix various documentation issues for Qt Core 2020-10-31 11:46:54 +01:00
qdeadlinetimer.h Replace Qt CONSTEXPR defines with constexpr 2020-08-14 15:52:58 +02:00
qdeadlinetimer_p.h
qelapsedtimer.cpp Make QElapsedTimer comparison operators hidden friends 2020-10-27 12:49:39 +01:00
qelapsedtimer.h Make QElapsedTimer comparison operators hidden friends 2020-10-27 12:49:39 +01:00
qelapsedtimer_generic.cpp Make QElapsedTimer comparison operators hidden friends 2020-10-27 12:49:39 +01:00
qelapsedtimer_mac.cpp Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qelapsedtimer_unix.cpp
qelapsedtimer_win.cpp
qeventdispatcher_cf.mm QAbstractEventDispatcher: change event dispatcher timer interval to qint64 2020-09-21 09:30:54 +00:00
qeventdispatcher_cf_p.h Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
qeventdispatcher_glib.cpp name our glib event sources to ease debugging 2020-10-22 00:51:26 +02:00
qeventdispatcher_glib_p.h QAbstractEventDispatcher: change event dispatcher timer interval to qint64 2020-09-21 09:30:54 +00:00
qeventdispatcher_unix.cpp Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qeventdispatcher_unix_p.h QAbstractEventDispatcher: change event dispatcher timer interval to qint64 2020-09-21 09:30:54 +00:00
qeventdispatcher_win.cpp QEventDispatcherWin32Private: Get rid of TimerInfo struct list 2020-11-26 08:36:44 +02:00
qeventdispatcher_win_p.h QEventDispatcherWin32Private: Get rid of TimerInfo struct list 2020-11-26 08:36:44 +02:00
qeventloop.cpp Correct processEvents documentation 2020-11-08 12:07:24 +01:00
qeventloop.h Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qeventloop_p.h
qfunctions_p.h Remove obsolete native client platform 2020-09-03 14:51:13 +02:00
qfunctions_vxworks.cpp
qfunctions_vxworks.h
qfunctions_winrt_p.h
qiterable.cpp Doc: Fix documentation warnings for QIterable and related classes 2020-10-29 18:38:08 +01:00
qiterable.h Remove default ctor for QIterable 2020-09-22 13:52:19 +02:00
qiterable_p.h QMetaContainer: Consistently coerce types 2020-10-19 22:11:50 +02:00
qjni.cpp Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
qjni_p.h Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qjnihelpers.cpp Refactor QMutexLocker to be able to handle recursive mutexes 2020-10-17 12:02:49 +02:00
qjnihelpers_p.h Make QStringList an alias to QList<QString> 2020-09-12 23:37:15 +02:00
qjnionload.cpp Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qmath.cpp
qmath.h Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qmath.qdoc
qmetacontainer.cpp Fix qdoc warning and typo in QMetaSequence 2020-09-25 13:15:50 +02:00
qmetacontainer.h Rename QContainerTraits namespace to QContainerInfo 2020-11-03 13:06:14 +01:00
qmetaobject.cpp QMetaObjectPrivate: Add firstMethod 2020-11-30 17:16:22 +01:00
qmetaobject.h Replace discouraged Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPE 2020-11-30 17:16:21 +01:00
qmetaobject_moc_p.h
qmetaobject_p.h QMetaObjectPrivate: Add firstMethod 2020-11-30 17:16:22 +01:00
qmetaobjectbuilder.cpp Replace discouraged Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPE 2020-11-30 17:16:21 +01:00
qmetaobjectbuilder_p.h QMetaObjectBuilder: remove relocatable data support 2020-11-30 17:16:21 +01:00
qmetatype.cpp Fix QVariant/QMetaType::compare APIs 2020-11-30 17:16:22 +01:00
qmetatype.h Fix QVariant/QMetaType::compare APIs 2020-11-30 17:16:22 +01:00
qmetatype_p.h Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qmimedata.cpp Replace discouraged Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPE 2020-11-30 17:16:21 +01:00
qmimedata.h Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qobject.cpp Inline access to the QBindingStorage 2020-11-30 23:02:27 +00:00
qobject.h Inline access to the QBindingStorage 2020-11-30 23:02:27 +00:00
qobject_impl.h Revert "QObject: simplify part of connection logic" 2020-10-27 16:43:12 +01:00
qobject_p.h Inline access to the QBindingStorage 2020-11-30 23:02:27 +00:00
qobjectcleanuphandler.cpp Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qobjectcleanuphandler.h Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qobjectdefs.h Doc: Fix various documentation issues for Qt Core 2020-10-31 11:46:54 +01:00
qobjectdefs_impl.h
qpointer.cpp Fix documentation warnings 2020-10-24 14:13:42 +02:00
qpointer.h Replace discouraged Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPE 2020-11-30 17:16:21 +01:00
qpoll.cpp Another round of replacing 0 with nullptr 2020-10-07 23:02:47 +02:00
qpoll_p.h
qproperty.cpp Inline access to the QBindingStorage 2020-11-30 23:02:27 +00:00
qproperty.h Inline access to the QBindingStorage 2020-11-30 23:02:27 +00:00
qproperty_p.h Inline access to the QBindingStorage 2020-11-30 23:02:27 +00:00
qpropertyprivate.h Inline access to the QBindingStorage 2020-11-30 23:02:27 +00:00
qsequentialiterable.cpp Doc: Fix documentation warnings for QIterable and related classes 2020-10-29 18:38:08 +01:00
qsequentialiterable.h Replace discouraged Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPE 2020-11-30 17:16:21 +01:00
qsharedmemory.cpp Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qsharedmemory.h
qsharedmemory_android.cpp
qsharedmemory_p.h
qsharedmemory_posix.cpp
qsharedmemory_systemv.cpp Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qsharedmemory_unix.cpp
qsharedmemory_win.cpp Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qsignalmapper.cpp Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qsignalmapper.h
qsocketnotifier.cpp
qsocketnotifier.h Long live Q_IMPLICIT! 2020-10-14 20:58:51 +02:00
qsystemerror.cpp Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qsystemerror_p.h Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qsystemsemaphore.cpp
qsystemsemaphore.h
qsystemsemaphore_android.cpp
qsystemsemaphore_p.h
qsystemsemaphore_posix.cpp
qsystemsemaphore_systemv.cpp
qsystemsemaphore_unix.cpp
qsystemsemaphore_win.cpp
qt_attribution.json
qtestsupport_core.cpp Restore qWait() implementation 2020-09-13 13:22:46 +02:00
qtestsupport_core.h qWaitFor: check predicate before sleeping 2020-10-22 22:58:11 +00:00
qtimer.cpp Move the data for QTimer into the d-pointer 2020-08-29 21:01:10 +02:00
qtimer.h Move the data for QTimer into the d-pointer 2020-08-29 21:01:10 +02:00
qtimerinfo_unix.cpp QAbstractEventDispatcher: change event dispatcher timer interval to qint64 2020-09-21 09:30:54 +00:00
qtimerinfo_unix_p.h QAbstractEventDispatcher: change event dispatcher timer interval to qint64 2020-09-21 09:30:54 +00:00
qtmetamacros.h Remove QNotifiedProperty and Q_PRIVATE_QPROPERTY 2020-09-02 22:44:27 +02:00
qtranslator.cpp Whitespace cleanup in corelib/kernel 2020-10-24 19:45:59 +02:00
qtranslator.h Replace Q_REQUIRED_RESULT with [[nodiscard]] 2020-09-25 07:10:45 +02:00
qtranslator_p.h
qvariant.cpp Fix QVariant/QMetaType::compare APIs 2020-11-30 17:16:22 +01:00
qvariant.h Fix QVariant/QMetaType::compare APIs 2020-11-30 17:16:22 +01:00
qvariant_p.h Get rid of the private v_cast<>() method 2020-08-24 00:17:05 +02:00
qwineventnotifier.cpp QWinEventNotifier: unlink from event dispatcher 2020-11-10 17:56:51 +02:00
qwineventnotifier.h
qwineventnotifier_p.h QWinEventNotifier: unlink from event dispatcher 2020-11-10 17:56:51 +02:00
qwinregistry.cpp
qwinregistry_p.h Centralize the implementation of move assignment operators 2020-10-03 11:47:17 +02:00