| Index: tools/gn/builder.cc
|
| diff --git a/tools/gn/builder.cc b/tools/gn/builder.cc
|
| index e92a7e01f0823ef20213dffeb0c1b24bdda56041..ddc338a9e1f60a37edc580d95ffa503987eebf53 100644
|
| --- a/tools/gn/builder.cc
|
| +++ b/tools/gn/builder.cc
|
| @@ -29,13 +29,7 @@ typedef BuilderRecord::BuilderRecordSet BuilderRecordSet;
|
| bool RecursiveFindCycle(const BuilderRecord* search_in,
|
| std::vector<const BuilderRecord*>* path) {
|
| path->push_back(search_in);
|
| -
|
| - const BuilderRecord::BuilderRecordSet& unresolved =
|
| - search_in->unresolved_deps();
|
| - for (BuilderRecord::BuilderRecordSet::const_iterator i = unresolved.begin();
|
| - i != unresolved.end(); ++i) {
|
| - const BuilderRecord* cur = *i;
|
| -
|
| + for (const auto& cur : search_in->unresolved_deps()) {
|
| std::vector<const BuilderRecord*>::iterator found =
|
| std::find(path->begin(), path->end(), cur);
|
| if (found != path->end()) {
|
| @@ -132,20 +126,18 @@ const Toolchain* Builder::GetToolchain(const Label& label) const {
|
| std::vector<const BuilderRecord*> Builder::GetAllRecords() const {
|
| std::vector<const BuilderRecord*> result;
|
| result.reserve(records_.size());
|
| - for (RecordMap::const_iterator i = records_.begin();
|
| - i != records_.end(); ++i)
|
| - result.push_back(i->second);
|
| + for (const auto& record : records_)
|
| + result.push_back(record.second);
|
| return result;
|
| }
|
|
|
| std::vector<const Target*> Builder::GetAllResolvedTargets() const {
|
| std::vector<const Target*> result;
|
| result.reserve(records_.size());
|
| - for (RecordMap::const_iterator i = records_.begin();
|
| - i != records_.end(); ++i) {
|
| - if (i->second->type() == BuilderRecord::ITEM_TARGET &&
|
| - i->second->should_generate() && i->second->item())
|
| - result.push_back(i->second->item()->AsTarget());
|
| + for (const auto& record : records_) {
|
| + if (record.second->type() == BuilderRecord::ITEM_TARGET &&
|
| + record.second->should_generate() && record.second->item())
|
| + result.push_back(record.second->item()->AsTarget());
|
| }
|
| return result;
|
| }
|
| @@ -174,9 +166,8 @@ bool Builder::CheckForBadItems(Err* err) const {
|
| // that below.
|
| std::vector<const BuilderRecord*> bad_records;
|
| std::string depstring;
|
| - for (RecordMap::const_iterator i = records_.begin();
|
| - i != records_.end(); ++i) {
|
| - const BuilderRecord* src = i->second;
|
| + for (const auto& record_pair : records_) {
|
| + const BuilderRecord* src = record_pair.second;
|
| if (!src->should_generate())
|
| continue; // Skip ungenerated nodes.
|
|
|
| @@ -184,11 +175,7 @@ bool Builder::CheckForBadItems(Err* err) const {
|
| bad_records.push_back(src);
|
|
|
| // Check dependencies.
|
| - for (BuilderRecord::BuilderRecordSet::const_iterator dest_iter =
|
| - src->unresolved_deps().begin();
|
| - dest_iter != src->unresolved_deps().end();
|
| - ++dest_iter) {
|
| - const BuilderRecord* dest = *dest_iter;
|
| + for (const auto& dest : src->unresolved_deps()) {
|
| if (!dest->item()) {
|
| depstring += src->label().GetUserVisibleName(true) +
|
| "\n needs " + dest->label().GetUserVisibleName(true) + "\n";
|
| @@ -210,9 +197,9 @@ bool Builder::CheckForBadItems(Err* err) const {
|
| // Something's very wrong, just dump out the bad nodes.
|
| depstring = "I have no idea what went wrong, but these are unresolved, "
|
| "possibly due to an\ninternal error:";
|
| - for (size_t i = 0; i < bad_records.size(); i++) {
|
| + for (const auto& bad_record : bad_records) {
|
| depstring += "\n\"" +
|
| - bad_records[i]->label().GetUserVisibleName(false) + "\"";
|
| + bad_record->label().GetUserVisibleName(false) + "\"";
|
| }
|
| *err = Err(Location(), "", depstring);
|
| } else {
|
| @@ -328,9 +315,9 @@ BuilderRecord* Builder::GetResolvedRecordOfType(const Label& label,
|
| bool Builder::AddDeps(BuilderRecord* record,
|
| const LabelConfigVector& configs,
|
| Err* err) {
|
| - for (size_t i = 0; i < configs.size(); i++) {
|
| + for (const auto& config : configs) {
|
| BuilderRecord* dep_record = GetOrCreateRecordOfType(
|
| - configs[i].label, configs[i].origin, BuilderRecord::ITEM_CONFIG, err);
|
| + config.label, config.origin, BuilderRecord::ITEM_CONFIG, err);
|
| if (!dep_record)
|
| return false;
|
| record->AddDep(dep_record);
|
| @@ -341,9 +328,9 @@ bool Builder::AddDeps(BuilderRecord* record,
|
| bool Builder::AddDeps(BuilderRecord* record,
|
| const UniqueVector<LabelConfigPair>& configs,
|
| Err* err) {
|
| - for (size_t i = 0; i < configs.size(); i++) {
|
| + for (const auto& config : configs) {
|
| BuilderRecord* dep_record = GetOrCreateRecordOfType(
|
| - configs[i].label, configs[i].origin, BuilderRecord::ITEM_CONFIG, err);
|
| + config.label, config.origin, BuilderRecord::ITEM_CONFIG, err);
|
| if (!dep_record)
|
| return false;
|
| record->AddDep(dep_record);
|
| @@ -354,9 +341,9 @@ bool Builder::AddDeps(BuilderRecord* record,
|
| bool Builder::AddDeps(BuilderRecord* record,
|
| const LabelTargetVector& targets,
|
| Err* err) {
|
| - for (size_t i = 0; i < targets.size(); i++) {
|
| + for (const auto& target : targets) {
|
| BuilderRecord* dep_record = GetOrCreateRecordOfType(
|
| - targets[i].label, targets[i].origin, BuilderRecord::ITEM_TARGET, err);
|
| + target.label, target.origin, BuilderRecord::ITEM_TARGET, err);
|
| if (!dep_record)
|
| return false;
|
| record->AddDep(dep_record);
|
| @@ -383,10 +370,7 @@ void Builder::RecursiveSetShouldGenerate(BuilderRecord* record,
|
| return; // Already set.
|
| record->set_should_generate(true);
|
|
|
| - const BuilderRecordSet& deps = record->all_deps();
|
| - for (BuilderRecordSet::const_iterator i = deps.begin();
|
| - i != deps.end(); i++) {
|
| - BuilderRecord* cur = *i;
|
| + for (const auto& cur : record->all_deps()) {
|
| if (!cur->should_generate()) {
|
| ScheduleItemLoadIfNecessary(cur);
|
| RecursiveSetShouldGenerate(cur, false);
|
| @@ -428,10 +412,7 @@ bool Builder::ResolveItem(BuilderRecord* record, Err* err) {
|
| resolved_callback_.Run(record);
|
|
|
| // Recursively update everybody waiting on this item to be resolved.
|
| - BuilderRecordSet& waiting_set = record->waiting_on_resolution();
|
| - for (BuilderRecordSet::iterator i = waiting_set.begin();
|
| - i != waiting_set.end(); ++i) {
|
| - BuilderRecord* waiting = *i;
|
| + for (BuilderRecord* waiting : record->waiting_on_resolution()) {
|
| DCHECK(waiting->unresolved_deps().find(record) !=
|
| waiting->unresolved_deps().end());
|
| waiting->unresolved_deps().erase(record);
|
| @@ -441,13 +422,12 @@ bool Builder::ResolveItem(BuilderRecord* record, Err* err) {
|
| return false;
|
| }
|
| }
|
| - waiting_set.clear();
|
| + record->waiting_on_resolution().clear();
|
| return true;
|
| }
|
|
|
| bool Builder::ResolveDeps(LabelTargetVector* deps, Err* err) {
|
| - for (size_t i = 0; i < deps->size(); i++) {
|
| - LabelTargetPair& cur = (*deps)[i];
|
| + for (LabelTargetPair& cur : *deps) {
|
| DCHECK(!cur.ptr);
|
|
|
| BuilderRecord* record = GetResolvedRecordOfType(
|
| @@ -460,8 +440,7 @@ bool Builder::ResolveDeps(LabelTargetVector* deps, Err* err) {
|
| }
|
|
|
| bool Builder::ResolveConfigs(UniqueVector<LabelConfigPair>* configs, Err* err) {
|
| - for (size_t i = 0; i < configs->size(); i++) {
|
| - const LabelConfigPair& cur = (*configs)[i];
|
| + for (const auto& cur : *configs) {
|
| DCHECK(!cur.ptr);
|
|
|
| BuilderRecord* record = GetResolvedRecordOfType(
|
| @@ -480,24 +459,24 @@ bool Builder::ResolveForwardDependentConfigs(Target* target, Err* err) {
|
| target->forward_dependent_configs();
|
|
|
| // Assume that the lists are small so that brute-force n^2 is appropriate.
|
| - for (size_t config_i = 0; config_i < configs.size(); config_i++) {
|
| + for (const auto& config : configs) {
|
| for (const auto& dep_pair : target->GetDeps(Target::DEPS_LINKED)) {
|
| - if (configs[config_i].label == dep_pair.label) {
|
| + if (config.label == dep_pair.label) {
|
| DCHECK(dep_pair.ptr); // Should already be resolved.
|
| // UniqueVector's contents are constant so uniqueness is preserved, but
|
| // we want to update this pointer which doesn't change uniqueness
|
| // (uniqueness in this vector is determined by the label only).
|
| - const_cast<LabelTargetPair&>(configs[config_i]).ptr = dep_pair.ptr;
|
| + const_cast<LabelTargetPair&>(config).ptr = dep_pair.ptr;
|
| break;
|
| }
|
| }
|
| - if (!configs[config_i].ptr) {
|
| + if (!config.ptr) {
|
| *err = Err(target->defined_from(),
|
| "Target in forward_dependent_configs_from was not listed in the deps",
|
| "This target has a forward_dependent_configs_from entry that was "
|
| "not present in\nthe deps. A target can only forward things it "
|
| "depends on. It was forwarding:\n " +
|
| - configs[config_i].label.GetUserVisibleName(false));
|
| + config.label.GetUserVisibleName(false));
|
| return false;
|
| }
|
| }
|
|
|