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 <charles@charleskerr.com>
This commit is contained in:
trop[bot] 2025-06-30 10:59:53 +02:00 committed by GitHub
commit 6d3eeb46e4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -6,20 +6,18 @@
#include <algorithm> #include <algorithm>
#include "base/containers/to_vector.h"
#include "base/no_destructor.h" #include "base/no_destructor.h"
#include "shell/browser/native_window.h" #include "shell/browser/native_window.h"
#include "shell/browser/window_list_observer.h" #include "shell/browser/window_list_observer.h"
namespace { namespace {
template <typename T> template <typename T>
std::vector<base::WeakPtr<T>> ConvertToWeakPtrVector(std::vector<T*> raw_ptrs) { auto ConvertToWeakPtrVector(const std::vector<T*>& raw_ptrs) {
std::vector<base::WeakPtr<T>> converted_to_weak; return base::ToVector(raw_ptrs, [](T* t) { return t->GetWeakPtr(); });
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;
} }
} // namespace } // namespace
namespace electron { namespace electron {