refactor: use base::Value::Take*() (#41169)

* perf: avoid temporary strings in Converter<net::HttpRequestHeaders>::FromV8()

* perf: take strings instead of copying them in ToResponseHead()

* refactor: prefer base::Value::Take*() where appropriate

As per the base::Value docs: "prefer over `std::move(value.Get...())`
so clang-tidy can warn about potential use-after-move mistakes."
This commit is contained in:
Charles Kerr 2024-05-13 08:58:52 -05:00 коммит произвёл GitHub
Родитель 88f28a302f
Коммит 10fd0ba655
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
4 изменённых файлов: 6 добавлений и 8 удалений

Просмотреть файл

@ -103,7 +103,7 @@ std::unique_ptr<base::Value::Dict> ParseManifest(
LOG(ERROR) << "Failed to parse extension manifest.";
return std::unique_ptr<base::Value::Dict>();
}
return std::make_unique<base::Value::Dict>(std::move(manifest->GetDict()));
return std::make_unique<base::Value::Dict>(std::move(*manifest).TakeDict());
}
void ElectronExtensionSystem::LoadComponentExtensions() {

Просмотреть файл

@ -270,7 +270,7 @@ bool Archive::Init() {
}
header_size_ = 8 + size;
header_ = std::move(value->GetDict());
header_ = std::move(*value).TakeDict();
return true;
}

Просмотреть файл

@ -244,10 +244,8 @@ bool Converter<net::HttpRequestHeaders>::FromV8(v8::Isolate* isolate,
if (!ConvertFromV8(isolate, val, &dict))
return false;
for (const auto it : dict) {
if (it.second.is_string()) {
std::string value = it.second.GetString();
out->SetHeader(it.first, value);
}
if (it.second.is_string())
out->SetHeader(it.first, std::move(it.second).TakeString());
}
return true;
}

Просмотреть файл

@ -18,7 +18,7 @@ bool Converter<base::Value::Dict>::FromV8(v8::Isolate* isolate,
content::V8ValueConverter::Create()->FromV8Value(
val, isolate->GetCurrentContext());
if (value && value->is_dict()) {
*out = std::move(value->GetDict());
*out = std::move(*value).TakeDict();
return true;
} else {
return false;
@ -53,7 +53,7 @@ bool Converter<base::Value::List>::FromV8(v8::Isolate* isolate,
content::V8ValueConverter::Create()->FromV8Value(
val, isolate->GetCurrentContext());
if (value && value->is_list()) {
*out = std::move(value->GetList());
*out = std::move(*value).TakeList();
return true;
} else {
return false;