diff --git a/src/app/browser/window/tab/item/page/navigation/request/suggestion.rs b/src/app/browser/window/tab/item/page/navigation/request/suggestion.rs index bb8883d2..48337c14 100644 --- a/src/app/browser/window/tab/item/page/navigation/request/suggestion.rs +++ b/src/app/browser/window/tab/item/page/navigation/request/suggestion.rs @@ -172,27 +172,24 @@ impl Suggestion { gtk::glib::spawn_future_local(async move { let list_items: Vec<(GString, GString, bool, GString)> = gtk::gio::spawn_blocking(move || { - let result = profile + profile .history .contains_request(&query, limit) .into_iter() - .sorted_by(|a, b| Ord::cmp(&b.opened.count, &a.opened.count)); - let mut list_items = Vec::with_capacity(result.len()); - for item in result { - let subtitle = highlight(&item.request, &query); - let title = match item.title { - Some(title) => highlight(&title, &query), - None => subtitle.clone(), - }; - list_items.push(( - title, - subtitle, - profile.bookmark.is_match_request(&item.request), - item.request, - )) - } - list_items - .into_iter() + .sorted_by(|a, b| Ord::cmp(&b.opened.count, &a.opened.count)) + .map(|item| { + let subtitle = highlight(&item.request, &query); + let title = match item.title { + Some(title) => highlight(&title, &query), + None => subtitle.clone(), + }; + ( + title, + subtitle, + profile.bookmark.is_match_request(&item.request), + item.request, + ) + }) .sorted_by(|a, b| Ord::cmp(&b.2, &a.2)) // bookmark first .collect() })