Aggregation: Fix crash when components are in parent-child relationship

and the child is deleted first.

Change-Id: Idea3b4a3410bda99a8727551e2cbeab3a7b95d85
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Eike Ziller
2023-11-28 10:40:52 +01:00
parent 40d5a90bbc
commit 12428bf1d6
2 changed files with 21 additions and 0 deletions

View File

@@ -193,6 +193,9 @@ void Aggregate::deleteSelf(QObject *obj)
QWriteLocker locker(&lock());
aggregateMap().remove(obj);
m_components.removeAll(obj);
// Avoid issues if obj was child of another component of the aggregate.
// The parent is deleted in ~Aggregate and might still have a reference on obj
obj->setParent({});
}
delete this;
}