summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qstackedlayout.cpp
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-11-22 16:02:50 +0100
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-11-23 21:11:42 +0100
commit1fcc882d7ca564f17e49b8d51adc43eb5b97c57b (patch)
tree66484dcd72d6b3b713929232cb76bc208a67ed40 /src/widgets/kernel/qstackedlayout.cpp
parent910203afb489e872771ae0bb16876d0c26986624 (diff)
QStackedLayout: fix a memory leak
A layout takes ownership of the QLayoutItem passed to addItem. Change-Id: Iea3c64453f3cbf4f1b5660e505c1a35dca537833 Pick-to: 6.0 5.15 5.12 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/widgets/kernel/qstackedlayout.cpp')
-rw-r--r--src/widgets/kernel/qstackedlayout.cpp4
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;
}
/*!