Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Unified Diff: tools/gn/loader.cc

Issue 1878353002: GN: Use std::unique_ptr in Loader::ToolchainRecordMap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove unnecessary WrapUnique Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/gn/loader.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gn/loader.cc
diff --git a/tools/gn/loader.cc b/tools/gn/loader.cc
index 9061be82a0bdd548941349405b2442446948546e..3ac868cfcd79590bdf4a084682f565d1875bdf80 100644
--- a/tools/gn/loader.cc
+++ b/tools/gn/loader.cc
@@ -7,7 +7,6 @@
#include "base/bind.h"
#include "base/memory/ptr_util.h"
#include "base/message_loop/message_loop.h"
-#include "base/stl_util.h"
#include "tools/gn/build_settings.h"
#include "tools/gn/err.h"
#include "tools/gn/filesystem_utils.h"
@@ -106,8 +105,6 @@ LoaderImpl::LoaderImpl(const BuildSettings* build_settings)
}
LoaderImpl::~LoaderImpl() {
- STLDeleteContainerPairSecondPointers(toolchain_records_.begin(),
- toolchain_records_.end());
}
void LoaderImpl::Load(const SourceFile& file,
@@ -120,13 +117,14 @@ void LoaderImpl::Load(const SourceFile& file,
return; // Already in set, so this file was already loaded or schedulerd.
if (toolchain_records_.empty()) {
- // Nothing loaded, need to load the default build config. The intial load
+ // Nothing loaded, need to load the default build config. The initial load
// should not specify a toolchain.
DCHECK(toolchain_name.is_null());
- ToolchainRecord* record =
- new ToolchainRecord(build_settings_, Label(), Label());
- toolchain_records_[Label()] = record;
+ std::unique_ptr<ToolchainRecord> new_record(
+ new ToolchainRecord(build_settings_, Label(), Label()));
+ ToolchainRecord* record = new_record.get();
+ toolchain_records_[Label()] = std::move(new_record);
// The default build config is no dependent on the toolchain definition,
// since we need to load the build config before we know what the default
@@ -135,22 +133,24 @@ void LoaderImpl::Load(const SourceFile& file,
record->waiting_on_me.push_back(SourceFileAndOrigin(file, origin));
ScheduleLoadBuildConfig(&record->settings, Scope::KeyValueMap());
+
return;
}
ToolchainRecord* record;
if (toolchain_name.is_null())
- record = toolchain_records_[default_toolchain_label_];
+ record = toolchain_records_[default_toolchain_label_].get();
else
- record = toolchain_records_[toolchain_name];
+ record = toolchain_records_[toolchain_name].get();
if (!record) {
DCHECK(!default_toolchain_label_.is_null());
// No reference to this toolchain found yet, make one.
- record = new ToolchainRecord(build_settings_, toolchain_name,
- default_toolchain_label_);
- toolchain_records_[toolchain_name] = record;
+ std::unique_ptr<ToolchainRecord> new_record(new ToolchainRecord(
+ build_settings_, toolchain_name, default_toolchain_label_));
+ record = new_record.get();
+ toolchain_records_[toolchain_name] = std::move(new_record);
// Schedule a load of the toolchain using the default one.
Load(BuildFileForLabel(toolchain_name), origin, default_toolchain_label_);
@@ -163,12 +163,13 @@ void LoaderImpl::Load(const SourceFile& file,
}
void LoaderImpl::ToolchainLoaded(const Toolchain* toolchain) {
- ToolchainRecord* record = toolchain_records_[toolchain->label()];
+ ToolchainRecord* record = toolchain_records_[toolchain->label()].get();
if (!record) {
DCHECK(!default_toolchain_label_.is_null());
- record = new ToolchainRecord(build_settings_, toolchain->label(),
- default_toolchain_label_);
- toolchain_records_[toolchain->label()] = record;
+ std::unique_ptr<ToolchainRecord> new_record(new ToolchainRecord(
+ build_settings_, toolchain->label(), default_toolchain_label_));
+ record = new_record.get();
+ toolchain_records_[toolchain->label()] = std::move(new_record);
}
record->is_toolchain_loaded = true;
@@ -356,8 +357,10 @@ void LoaderImpl::DidLoadBuildConfig(const Label& label) {
CHECK(empty_label != toolchain_records_.end());
// Fix up the toolchain record.
- record = empty_label->second;
- toolchain_records_[label] = record;
+ std::unique_ptr<ToolchainRecord> moved_record =
+ std::move(empty_label->second);
+ record = moved_record.get();
+ toolchain_records_[label] = std::move(moved_record);
toolchain_records_.erase(empty_label);
// Save the default toolchain label.
@@ -383,7 +386,7 @@ void LoaderImpl::DidLoadBuildConfig(const Label& label) {
}
}
} else {
- record = found_toolchain->second;
+ record = found_toolchain->second.get();
}
DCHECK(!record->is_config_loaded);
« no previous file with comments | « tools/gn/loader.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698