FileManager+LibGUI: Fix two folder-related crashes (#569)

Fix a crash when opening a folder, and another one when trying to open
a newly created folder.

It was not safe to modify a GModelSelection while it's being iterated over.

Fixes #536.
This commit is contained in:
Brandon Scott 2019-09-17 02:26:10 -05:00 committed by Andreas Kling
commit a4d52b122d
Notes: sideshowbarker 2024-07-19 12:04:50 +09:00
4 changed files with 46 additions and 5 deletions

View file

@ -33,17 +33,27 @@ public:
template<typename Callback>
void for_each_index(Callback callback)
{
for (auto& index : m_indexes)
for (auto& index : indexes())
callback(index);
}
template<typename Callback>
void for_each_index(Callback callback) const
{
for (auto& index : m_indexes)
for (auto& index : indexes())
callback(index);
}
Vector<GModelIndex> indexes() const
{
Vector<GModelIndex> selected_indexes;
for (auto& index : m_indexes)
selected_indexes.append(index);
return selected_indexes;
}
// FIXME: This doesn't guarantee that what you get is the lowest or "first" index selected..
GModelIndex first() const
{