diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2020-11-22 16:02:50 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2020-11-23 23:40:14 +0000 |
commit | b963f3aa0f8ffd1ba20bc2932afd09f230b6ad9e (patch) | |
tree | 20fefe82c7af4db85f2f7b025e447fc93ce1f1ea /src/widgets | |
parent | b05d8749bc6fbca468df58e93d7a7d5ac74d079b (diff) |
QStackedLayout: fix a memory leak
A layout takes ownership of the QLayoutItem passed to addItem.
Change-Id: Iea3c64453f3cbf4f1b5660e505c1a35dca537833
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 1fcc882d7ca564f17e49b8d51adc43eb5b97c57b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/kernel/qstackedlayout.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/widgets/kernel/qstackedlayout.cpp b/src/widgets/kernel/qstackedlayout.cpp index f87fe96cc0..2f3d6f39cb 100644 --- a/src/widgets/kernel/qstackedlayout.cpp +++ b/src/widgets/kernel/qstackedlayout.cpp @@ -44,6 +44,8 @@ #include "private/qwidget_p.h" #include "private/qlayoutengine_p.h" +#include <memory> + QT_BEGIN_NAMESPACE class QStackedLayoutPrivate : public QLayoutPrivate @@ -421,13 +423,13 @@ int QStackedLayout::count() const */ void QStackedLayout::addItem(QLayoutItem *item) { + std::unique_ptr<QLayoutItem> guard(item); QWidget *widget = item->widget(); if (Q_UNLIKELY(!widget)) { qWarning("QStackedLayout::addItem: Only widgets can be added"); return; } addWidget(widget); - delete item; } /*! |