QtSupport: Fix leak of ExampleItems

Change-Id: Iee9b645a795ba29f8cc3ac4728e7814da27c4f8b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Christian Kandeler
2024-09-27 13:28:33 +02:00
parent 1b54cfd527
commit e47832d483

View File

@@ -427,16 +427,26 @@ void ExamplesViewController::updateExamples()
if (categoryOrder.isEmpty())
categoryOrder = result->categoryOrder;
}
items = filtered(items, isValidExampleOrDemo(instructionalsModules));
static const auto filteredItems = [](const QList<ExampleItem *> &items,
const std::function<bool(ExampleItem *)> &filter) {
QList<ExampleItem *> matching;
QList<ExampleItem *> nonMatching;
std::tie(matching, nonMatching) = Utils::partition(items, filter);
qDeleteAll(nonMatching);
return matching;
};
items = filteredItems(items, isValidExampleOrDemo(instructionalsModules));
if (m_isExamples) {
if (m_exampleSetModel->selectedQtSupports(Android::Constants::ANDROID_DEVICE_TYPE)) {
items = Utils::filtered(items, [](ExampleItem *item) {
items = filteredItems(items, [](ExampleItem *item) {
return item->tags.contains("android");
});
} else if (m_exampleSetModel->selectedQtSupports(Ios::Constants::IOS_DEVICE_TYPE)) {
items = Utils::filtered(items,
[](ExampleItem *item) { return item->tags.contains("ios"); });
items = filteredItems(items, [](ExampleItem *item) {
return item->tags.contains("ios");
});
}
}