From 6d3eeb46e42fdcf2f8c4433bad51ea3e0ea1fb4c Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 10:59:53 +0200 Subject: [PATCH] perf: avoid copying a vector when calling ConvertToWeakPtrVector() (#47603) Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr --- shell/browser/window_list.cc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/shell/browser/window_list.cc b/shell/browser/window_list.cc index 188402d0e6..f945dfa227 100644 --- a/shell/browser/window_list.cc +++ b/shell/browser/window_list.cc @@ -6,20 +6,18 @@ #include +#include "base/containers/to_vector.h" #include "base/no_destructor.h" #include "shell/browser/native_window.h" #include "shell/browser/window_list_observer.h" namespace { + template -std::vector> ConvertToWeakPtrVector(std::vector raw_ptrs) { - std::vector> converted_to_weak; - converted_to_weak.reserve(raw_ptrs.size()); - for (auto* raw_ptr : raw_ptrs) { - converted_to_weak.push_back(raw_ptr->GetWeakPtr()); - } - return converted_to_weak; +auto ConvertToWeakPtrVector(const std::vector& raw_ptrs) { + return base::ToVector(raw_ptrs, [](T* t) { return t->GetWeakPtr(); }); } + } // namespace namespace electron {