Index: tools/gn/header_checker.cc |
diff --git a/tools/gn/header_checker.cc b/tools/gn/header_checker.cc |
index 26bc2222e9ec98e999a284da4c25a02f4b6d9f08..9092638e9b530d11dbc84c34f5fa896c894e93f7 100644 |
--- a/tools/gn/header_checker.cc |
+++ b/tools/gn/header_checker.cc |
@@ -121,8 +121,8 @@ HeaderChecker::HeaderChecker(const BuildSettings* build_settings, |
const std::vector<const Target*>& targets) |
: main_loop_(base::MessageLoop::current()), |
build_settings_(build_settings) { |
- for (size_t i = 0; i < targets.size(); i++) |
- AddTargetToFileMap(targets[i], &file_map_); |
+ for (const auto& target : targets) |
+ AddTargetToFileMap(target, &file_map_); |
} |
HeaderChecker::~HeaderChecker() { |
@@ -137,8 +137,8 @@ bool HeaderChecker::Run(const std::vector<const Target*>& to_check, |
} else { |
// Run only over the files in the given targets. |
FileMap files_to_check; |
- for (size_t i = 0; i < to_check.size(); i++) |
- AddTargetToFileMap(to_check[i], &files_to_check); |
+ for (const auto& check : to_check) |
+ AddTargetToFileMap(check, &files_to_check); |
RunCheckOverFiles(files_to_check, force_check); |
} |
@@ -154,12 +154,9 @@ void HeaderChecker::RunCheckOverFiles(const FileMap& files, bool force_check) { |
scoped_refptr<base::SequencedWorkerPool> pool( |
new base::SequencedWorkerPool(16, "HeaderChecker")); |
- for (FileMap::const_iterator file_i = files.begin(); |
- file_i != files.end(); ++file_i) { |
- const TargetVector& vect = file_i->second; |
- |
+ for (const auto& file : files) { |
// Only check C-like source files (RC files also have includes). |
- SourceFileType type = GetSourceFileType(file_i->first); |
+ SourceFileType type = GetSourceFileType(file.first); |
if (type != SOURCE_CC && type != SOURCE_H && type != SOURCE_C && |
type != SOURCE_M && type != SOURCE_MM && type != SOURCE_RC) |
continue; |
@@ -171,19 +168,18 @@ void HeaderChecker::RunCheckOverFiles(const FileMap& files, bool force_check) { |
if (!force_check) { |
bool check_includes = false; |
bool is_generated = false; |
- for (size_t vect_i = 0; vect_i < vect.size(); ++vect_i) { |
- check_includes |= vect[vect_i].target->check_includes(); |
- is_generated |= vect[vect_i].is_generated; |
+ for (const auto& vect_i : file.second) { |
+ check_includes |= vect_i.target->check_includes(); |
+ is_generated |= vect_i.is_generated; |
} |
if (!check_includes || is_generated) |
continue; |
} |
- for (size_t vect_i = 0; vect_i < vect.size(); ++vect_i) { |
+ for (const auto& vect_i : file.second) { |
pool->PostWorkerTaskWithShutdownBehavior( |
FROM_HERE, |
- base::Bind(&HeaderChecker::DoWork, this, |
- vect[vect_i].target, file_i->first), |
+ base::Bind(&HeaderChecker::DoWork, this, vect_i.target, file.first), |
base::SequencedWorkerPool::BLOCK_SHUTDOWN); |
} |
} |
@@ -212,19 +208,17 @@ void HeaderChecker::AddTargetToFileMap(const Target* target, FileMap* dest) { |
// action, but those are often then wired into the sources of a compiled |
// target to actually compile generated code. If you depend on the compiled |
// target, it should be enough to be able to include the header. |
- const Target::FileList& sources = target->sources(); |
- for (size_t i = 0; i < sources.size(); i++) { |
- SourceFile file = RemoveRootGenDirFromFile(target, sources[i]); |
+ for (const auto& source : target->sources()) { |
+ SourceFile file = RemoveRootGenDirFromFile(target, source); |
files_to_public[file].is_public = default_public; |
} |
// Add in the public files, forcing them to public. This may overwrite some |
// entries, and it may add new ones. |
- const Target::FileList& public_list = target->public_headers(); |
- if (default_public) |
- DCHECK(public_list.empty()); // List only used when default is not public. |
- for (size_t i = 0; i < public_list.size(); i++) { |
- SourceFile file = RemoveRootGenDirFromFile(target, public_list[i]); |
+ if (default_public) // List only used when default is not public. |
+ DCHECK(target->public_headers().empty()); |
+ for (const auto& source : target->public_headers()) { |
+ SourceFile file = RemoveRootGenDirFromFile(target, source); |
files_to_public[file].is_public = true; |
} |
@@ -232,23 +226,21 @@ void HeaderChecker::AddTargetToFileMap(const Target* target, FileMap* dest) { |
// targets can't use them, then there wouldn't be any point in outputting). |
std::vector<SourceFile> outputs; |
target->action_values().GetOutputsAsSourceFiles(target, &outputs); |
- for (size_t i = 0; i < outputs.size(); i++) { |
+ for (const auto& output : outputs) { |
// For generated files in the "gen" directory, add the filename to the |
// map assuming "gen" is the source root. This means that when files include |
// the generated header relative to there (the recommended practice), we'll |
// find the file. |
- SourceFile output_file = RemoveRootGenDirFromFile(target, outputs[i]); |
+ SourceFile output_file = RemoveRootGenDirFromFile(target, output); |
PublicGeneratedPair* pair = &files_to_public[output_file]; |
pair->is_public = true; |
pair->is_generated = true; |
} |
// Add the merged list to the master list of all files. |
- for (std::map<SourceFile, PublicGeneratedPair>::const_iterator i = |
- files_to_public.begin(); |
- i != files_to_public.end(); ++i) { |
- (*dest)[i->first].push_back(TargetInfo( |
- target, i->second.is_public, i->second.is_generated)); |
+ for (const auto& cur : files_to_public) { |
+ (*dest)[cur.first].push_back(TargetInfo( |
+ target, cur.second.is_public, cur.second.is_generated)); |
} |
} |
@@ -396,8 +388,8 @@ bool HeaderChecker::CheckInclude(const Target* from_target, |
std::string msg = "It is not in any dependency of " + |
from_target->label().GetUserVisibleName(false); |
msg += "\nThe include file is in the target(s):\n"; |
- for (size_t i = 0; i < targets.size(); i++) |
- msg += " " + targets[i].target->label().GetUserVisibleName(false) + "\n"; |
+ for (const auto& target : targets) |
+ msg += " " + target.target->label().GetUserVisibleName(false) + "\n"; |
if (targets.size() > 1) |
msg += "at least one of "; |
msg += "which should somehow be reachable from " + |
@@ -502,11 +494,9 @@ bool HeaderChecker::IsDependencyOf(const Target* search_for, |
} |
// Always consider public dependencies as possibilities. |
- const LabelTargetVector& public_deps = target->public_deps(); |
- for (size_t i = 0; i < public_deps.size(); i++) { |
- if (breadcrumbs.insert( |
- std::make_pair(public_deps[i].ptr, cur_link)).second) |
- work_queue.push(ChainLink(public_deps[i].ptr, true)); |
+ for (const auto& dep : target->public_deps()) { |
+ if (breadcrumbs.insert(std::make_pair(dep.ptr, cur_link)).second) |
+ work_queue.push(ChainLink(dep.ptr, true)); |
} |
if (first_time || !require_permitted) { |
@@ -515,11 +505,9 @@ bool HeaderChecker::IsDependencyOf(const Target* search_for, |
// a target can include headers from its direct deps regardless of |
// public/private-ness. |
first_time = false; |
- const LabelTargetVector& private_deps = target->private_deps(); |
- for (size_t i = 0; i < private_deps.size(); i++) { |
- if (breadcrumbs.insert( |
- std::make_pair(private_deps[i].ptr, cur_link)).second) |
- work_queue.push(ChainLink(private_deps[i].ptr, false)); |
+ for (const auto& dep : target->private_deps()) { |
+ if (breadcrumbs.insert(std::make_pair(dep.ptr, cur_link)).second) |
+ work_queue.push(ChainLink(dep.ptr, false)); |
} |
} |
} |