summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qproperty_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel/qproperty_p.h')
-rw-r--r--src/corelib/kernel/qproperty_p.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/corelib/kernel/qproperty_p.h b/src/corelib/kernel/qproperty_p.h
index aa81aa9203..9185c939c6 100644
--- a/src/corelib/kernel/qproperty_p.h
+++ b/src/corelib/kernel/qproperty_p.h
@@ -241,6 +241,13 @@ public:
void clearDependencyObservers() {
for (size_t i = 0; i < qMin(dependencyObserverCount, inlineDependencyObservers.size()); ++i) {
QPropertyObserverPointer p{&inlineDependencyObservers[i]};
+ if (p.ptr->next.tag() == QPropertyObserver::ActivelyExecuting) {
+ *(p.ptr->nodeState) = nullptr;
+ p.ptr->nodeState = nullptr;
+
+ // set tag to "safer" value, as we return the same observer pointer from allocateDependencyObserver
+ p.ptr->next.setTag(QPropertyObserver::ObserverNotifiesChangeHandler);
+ }
p.unlink();
}
if (heapObservers)