Summary: | Systemsettings Crash when Installing Themes - Can't aways reproduce. | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-kirigami | Reporter: | agonza80 |
Component: | general | Assignee: | Marco Martin <notmart> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | kde, nate |
Priority: | NOR | Keywords: | drkonqi |
Version: | 5.79.0 | ||
Target Milestone: | Not decided | ||
Platform: | Neon | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/frameworks/kirigami/commit/29dabab2f536827bc1ecec63f5a0b0a76f0809e5 | Version Fixed In: | 5.81 |
Description
agonza80
2021-03-06 21:53:15 UTC
Bug is here: QList<QPointer<QQuickItem>> m_items; We have a list of items and guard for deletion, but they're QML owned. So there's a point in time when it's pending deletion but the lower level object isn't managed by an engine. As we go via: QQmlProperty(item, QStringLiteral("Layout.preferredWidth"), qmlContext(item)).write(maxWidth); this causes an issue A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kirigami/-/merge_requests/253 Git commit 29dabab2f536827bc1ecec63f5a0b0a76f0809e5 by Marco Martin, on behalf of David Edmundson. Committed on 09/03/2021 at 14:30. Pushed by mart into branch 'master'. Fix potential crash in SizeGroup SizeGroup keeps a cache of a list of items, and when one updates does calculations based on all items. This list is stored as a list of QPointers as we don't explicitly track deletion. We have a list of items and guard for deletion, but they're QML owned. So there's a point in time when it's pending deletion with the garbage collector but the lower level object isn't managed by an engine. As we go via QQmlProperty(item, QStringLiteral("Layout.preferredWidth"), qmlContext(item)).write(maxWidth) this is problematic. M +4 -0 src/sizegroup.cpp https://invent.kde.org/frameworks/kirigami/commit/29dabab2f536827bc1ecec63f5a0b0a76f0809e5 |