diff --git a/Libraries/LibGUI/GFontDatabase.cpp b/Libraries/LibGUI/GFontDatabase.cpp index a8fee8844c..c6712186e8 100644 --- a/Libraries/LibGUI/GFontDatabase.cpp +++ b/Libraries/LibGUI/GFontDatabase.cpp @@ -1,6 +1,7 @@ +#include #include -#include #include +#include #include #include #include @@ -40,17 +41,26 @@ GFontDatabase::~GFontDatabase() void GFontDatabase::for_each_font(Function callback) { - for (auto& it : m_name_to_metadata) { - callback(it.key); - } + Vector names; + names.ensure_capacity(m_name_to_metadata.size()); + for (auto& it : m_name_to_metadata) + names.append(it.key); + quick_sort(names.begin(), names.end(), AK::is_less_than); + for (auto& name : names) + callback(name); } void GFontDatabase::for_each_fixed_width_font(Function callback) { + Vector names; + names.ensure_capacity(m_name_to_metadata.size()); for (auto& it : m_name_to_metadata) { if (it.value.is_fixed_width) - callback(it.key); + names.append(it.key); } + quick_sort(names.begin(), names.end(), AK::is_less_than); + for (auto& name : names) + callback(name); } RefPtr GFontDatabase::get_by_name(const StringView& name)