diff options
author | Mitch Curtis <mitch.curtis@qt.io> | 2020-09-25 11:49:39 +0200 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2020-09-29 10:01:35 +0200 |
commit | f12e2061c460504d6db1d1370e97b5eeead9c7bf (patch) | |
tree | 99fe724b5549df65c102ae979e43eaa7d3794416 /src/quicktemplates2/qquickmenu.cpp | |
parent | fce0e9a30a82ca8e61f7bd6a090ec3858c0af032 (diff) |
QQuickMenu: fix contentModel memory leak
Q_Q should not be used in a QObjectPrivate-derivative's constructor,
as q will be null at that stage. Instead, add QQuickMenuPrivate::init()
and create the contentModel there.
Pick-to: 5.15 5.12
Fixes: QTBUG-86851
Change-Id: Ia2a955e718cc0486af5a05e24fcfcb1c4bacb48d
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickmenu.cpp')
-rw-r--r-- | src/quicktemplates2/qquickmenu.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquickmenu.cpp b/src/quicktemplates2/qquickmenu.cpp index 815f1a4f52..35dc5dd8bf 100644 --- a/src/quicktemplates2/qquickmenu.cpp +++ b/src/quicktemplates2/qquickmenu.cpp @@ -217,8 +217,12 @@ public: QQuickMenuPrivate::QQuickMenuPrivate() { - Q_Q(QQuickMenu); cascade = shouldCascade(); +} + +void QQuickMenuPrivate::init() +{ + Q_Q(QQuickMenu); contentModel = new QQmlObjectModel(q); } @@ -727,6 +731,7 @@ QQuickMenu::QQuickMenu(QObject *parent) { Q_D(QQuickMenu); setFocus(true); + d->init(); connect(d->contentModel, &QQmlObjectModel::countChanged, this, &QQuickMenu::countChanged); } |