From c4748f909c2de24b49e9867cfc50b03fc168db6a Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Sun, 22 Nov 2020 16:02:50 +0100 Subject: QStackedLayout: fix a memory leak A layout takes ownership of the QLayoutItem passed to addItem. Change-Id: Iea3c64453f3cbf4f1b5660e505c1a35dca537833 Reviewed-by: Volker Hilsheimer (cherry picked from commit 1fcc882d7ca564f17e49b8d51adc43eb5b97c57b) Reviewed-by: Qt Cherry-pick Bot --- src/widgets/kernel/qstackedlayout.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/widgets/kernel/qstackedlayout.cpp b/src/widgets/kernel/qstackedlayout.cpp index 7430d833db..0b1641c141 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 + QT_BEGIN_NAMESPACE class QStackedLayoutPrivate : public QLayoutPrivate @@ -421,13 +423,13 @@ int QStackedLayout::count() const */ void QStackedLayout::addItem(QLayoutItem *item) { + std::unique_ptr guard(item); QWidget *widget = item->widget(); if (Q_UNLIKELY(!widget)) { qWarning("QStackedLayout::addItem: Only widgets can be added"); return; } addWidget(widget); - delete item; } /*! -- cgit v1.2.3