qt6-bb10/tests/auto/corelib/kernel
Fabian Kosmale 5b681bea90 QPropertyBinding: Do not reevaluate if not installed on property
Since we changed binding evaluation to be always eager, we notify and
evaluate all bindings as soon as any dependency changes. This includes
bindings which have been initially installed on a property, but which
were later removed.
With lazy evaluation, we would only notify those bindings and mark them
as dirty, which is unproblematic. With eager evalution, we attempt to
evaluate the binding, though. While that part is still fine, afterwards
we would attempt to write the new value into the property. However,
there is no property at that point, as the binding is not installed.
Instead of adding a check whether the propertydataptr is null, we skip
the reevaluation completely by removing the bindings observers - and
thus the cause for the binding function's reevaluation. As soon as the
binding is set, we reevaluate the function anyway, at which point we
also capture the observers again.

Task-number: QTBUG-89505
Change-Id: Ie1885ccd8be519fb96f6fde658275810b54f445a
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2021-05-12 14:49:46 +02:00
..
qcoreapplication
qdeadlinetimer
qelapsedtimer
qeventdispatcher
qeventloop
qjnienvironment QJniEnvironment: extend API 2021-05-03 18:09:23 +02:00
qjniobject Fix set*Field JNI template calls 2021-05-05 16:28:27 +03:00
qmath
qmetacontainer
qmetaenum
qmetamethod QMetaMethod: Store method constness in metaobject system 2021-05-07 21:50:58 +02:00
qmetaobject
qmetaobjectbuilder
qmetaproperty
qmetatype
qmimedata
qobject QObject: port to new property system 2021-04-21 15:34:28 +02:00
qpointer
qproperty QPropertyBinding: Do not reevaluate if not installed on property 2021-05-12 14:49:46 +02:00
qsharedmemory
qsignalblocker
qsignalmapper
qsocketnotifier
qsystemsemaphore
qtimer
qtranslator
qvariant
qwineventnotifier
CMakeLists.txt