diff options
author | Andreas Buhr <andreas.buhr@qt.io> | 2021-07-08 10:06:07 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2022-05-18 10:58:05 +0000 |
commit | ec7989aa66f172e731667e8cf647932262956423 (patch) | |
tree | 296beb5e79363cf1aa2c742ecff36e75cb5ca197 /tests | |
parent | 76e441c9ee0b8131edb503bfa8de9b26798fc95d (diff) |
Fix memory leak in tst_qtreewidget
Invalid inserts of items are tested. However, on an invalid insert
of QTreeWidgetItem into QTreeWidget, the QTreeWidget does not take
ownership of the to-be-inserted items. These items were leaked in
the past.
This patch introduces a scope-guard, so the items are not leaked.
Change-Id: Ib53ac02605c3a3c0bd1ae69bbd0876f860d08093
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp b/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp index 98623a44b3..652d6f76d9 100644 --- a/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp +++ b/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp @@ -5,6 +5,7 @@ #include <QApplication> #include <QHeaderView> #include <QLineEdit> +#include <QScopeGuard> #include <QScrollBar> #include <QSignalSpy> #include <QStyledItemDelegate> @@ -322,6 +323,7 @@ void tst_QTreeWidget::addTopLevelItem() // invalid insert { tops.clear(); + const auto sg = qScopeGuard([&] { qDeleteAll(std::exchange(tops, {})); }); for (int i = 0; i < 10; ++i) tops << new TreeItem(); int count = tree.topLevelItemCount(); |