qt5base-lts/tests/auto/corelib/kernel
Kent Hansen d359b0af2b Call QObject::disconnectNotify() when receiver is destroyed
Store the signal index in QObjectPrivate::Connection, thereby making
it available in "implicit" disconnect contexts (i.e., receiver
deletion).

This change does not cause the size of QObjectPrivate::Connection
to grow (still 40 bytes on 32-bit Linux, 72 bytes on 64-bit Mac).

Valgrinding the new benchmark indicates that the percentage of the
time spent in the QObject destructor increased from 7.8% to 8.4%
on ia32, for that particular stress test; the increase is the
combined cost of calling metaObject(), QMetaObjectPrivate::signal(),
and disconnectNotify() for one connection. In practice, the measured
wallclock time increased by about 3ms for a 500ms run (which
repeatedly constructs, connects, and destroys an object).

Task-number: QTBUG-4844

Change-Id: I1beb01c753f31542fc0acb62edb4c6d165fcc5b4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-28 14:44:20 +02:00
..
qcoreapplication Make the event notification on Windows be mandatory in all dispatchers 2012-05-04 12:44:14 +02:00
qeventdispatcher Test posted events in tst_QEventDispatcher with various flags 2012-02-10 15:22:11 +01:00
qeventloop Add CONFIG+=parallel_test to suspected parallel-safe tests. 2012-05-28 07:33:01 +02:00
qmath Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
qmetamethod Add CONFIG+=parallel_test to suspected parallel-safe tests. 2012-05-28 07:33:01 +02:00
qmetaobject Add test for queued call of method with unregistered parameter type 2012-06-20 09:34:48 +02:00
qmetaobjectbuilder Fixed uninitialized memory in QMetaObjectBuilder::fromRelocatableData 2012-05-01 09:41:27 +02:00
qmetaproperty Add CONFIG+=parallel_test to suspected parallel-safe tests. 2012-05-28 07:33:01 +02:00
qmetatype Record if a metatype is a smart pointer to a QObject derived. 2012-06-20 15:45:07 +02:00
qmimedata Add CONFIG+=parallel_test to suspected parallel-safe tests. 2012-05-28 07:33:01 +02:00
qobject Call QObject::disconnectNotify() when receiver is destroyed 2012-06-28 14:44:20 +02:00
qpointer Add some internal API for extracting a QSharedPointer<T> from QVariant. 2012-06-20 15:45:07 +02:00
qsignalmapper Add CONFIG+=parallel_test to suspected parallel-safe tests. 2012-05-28 07:33:01 +02:00
qsocketnotifier Add CONFIG+=parallel_test to suspected parallel-safe tests. 2012-05-28 07:33:01 +02:00
qtimer Merge "Merge remote-tracking branch 'origin/api_changes'" into refs/staging/master 2012-04-17 13:09:29 +02:00
qtranslator Make QTranslator testcase independent of Widgets 2012-03-28 00:44:16 +02:00
qvariant Add CONFIG+=parallel_test to suspected parallel-safe tests. 2012-05-28 07:33:01 +02:00
qwineventnotifier Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
kernel.pro Add autotest for QMetaMethod introspection 2012-02-15 17:27:04 +01:00