summaryrefslogtreecommitdiffstats
path: root/tools/gn/builder.cc
diff options
context:
space:
mode:
authorbrettw <brettw@chromium.org>2014-09-27 15:27:10 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-27 22:27:30 +0000
commita09df11aa1c5f416df4fb97f2303d9c1ff76b150 (patch)
tree6c1209f791c655b8b68fc8f91e8e8e42c3650546 /tools/gn/builder.cc
parentf446a070a0aa29a153b0cf78b33ef22da84cb023 (diff)
downloadchromium_src-a09df11aa1c5f416df4fb97f2303d9c1ff76b150.zip
chromium_src-a09df11aa1c5f416df4fb97f2303d9c1ff76b150.tar.gz
chromium_src-a09df11aa1c5f416df4fb97f2303d9c1ff76b150.tar.bz2
Convert GN's deps iterator to work with range-based for loops.
Reworks DepsIterator so it is compatible with STL iterators enough to work with range-based for loops. The iterator is now created by a target rather than taking a target as an argument, which makes the loops more natural. I also changed some loops around code I was touching to use range-based. Review URL: https://codereview.chromium.org/610043002 Cr-Commit-Position: refs/heads/master@{#297122}
Diffstat (limited to 'tools/gn/builder.cc')
-rw-r--r--tools/gn/builder.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/tools/gn/builder.cc b/tools/gn/builder.cc
index 6198777..e92a7e0 100644
--- a/tools/gn/builder.cc
+++ b/tools/gn/builder.cc
@@ -481,14 +481,13 @@ bool Builder::ResolveForwardDependentConfigs(Target* target, Err* err) {
// 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 (DepsIterator dep_iter(target, DepsIterator::LINKED_ONLY);
- !dep_iter.done(); dep_iter.Advance()) {
- if (configs[config_i].label == dep_iter.label()) {
- DCHECK(dep_iter.target()); // Should already be resolved.
+ for (const auto& dep_pair : target->GetDeps(Target::DEPS_LINKED)) {
+ if (configs[config_i].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_iter.target();
+ const_cast<LabelTargetPair&>(configs[config_i]).ptr = dep_pair.ptr;
break;
}
}