forked from qt-creator/qt-creator
QtSupport: Fix leak of ExampleItems
Change-Id: Iee9b645a795ba29f8cc3ac4728e7814da27c4f8b Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -427,16 +427,26 @@ void ExamplesViewController::updateExamples()
|
|||||||
if (categoryOrder.isEmpty())
|
if (categoryOrder.isEmpty())
|
||||||
categoryOrder = result->categoryOrder;
|
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_isExamples) {
|
||||||
if (m_exampleSetModel->selectedQtSupports(Android::Constants::ANDROID_DEVICE_TYPE)) {
|
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");
|
return item->tags.contains("android");
|
||||||
});
|
});
|
||||||
} else if (m_exampleSetModel->selectedQtSupports(Ios::Constants::IOS_DEVICE_TYPE)) {
|
} else if (m_exampleSetModel->selectedQtSupports(Ios::Constants::IOS_DEVICE_TYPE)) {
|
||||||
items = Utils::filtered(items,
|
items = filteredItems(items, [](ExampleItem *item) {
|
||||||
[](ExampleItem *item) { return item->tags.contains("ios"); });
|
return item->tags.contains("ios");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user