From 3499cd79c7397da718f2e0d1ef34f1b4dcab2485 Mon Sep 17 00:00:00 2001 From: Rainer Keller Date: Mon, 17 Oct 2022 08:16:47 +0200 Subject: [PATCH] McuSupport: Delete unused widgets The takeRow() function does not delete any widget. New rows are inserted using newly created widgets. This results in a memory leak of hidden widgets. This change deletes the widgets when removing them from the layout. Change-Id: Idda877c3cf5c20fc40bfbedb26da11270752e821 Reviewed-by: Yasser Grimes Reviewed-by: hjk --- src/plugins/mcusupport/mcusupportoptionspage.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/plugins/mcusupport/mcusupportoptionspage.cpp b/src/plugins/mcusupport/mcusupportoptionspage.cpp index 1aa12615cc8..4258b816d2d 100644 --- a/src/plugins/mcusupport/mcusupportoptionspage.cpp +++ b/src/plugins/mcusupport/mcusupportoptionspage.cpp @@ -251,9 +251,7 @@ void McuSupportOptionsWidget::showMcuTargetPackages() return; while (m_packagesLayout->rowCount() > 0) { - QFormLayout::TakeRowResult row = m_packagesLayout->takeRow(0); - row.labelItem->widget()->hide(); - row.fieldItem->widget()->hide(); + m_packagesLayout->removeRow(0); } for (const auto &package : std::as_const(m_options.sdkRepository.packages)) {