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

Side by Side Diff: tools/gn/loader.cc

Issue 1370603002: Make some global pointers const void* const. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 2 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 unified diff | Download patch
« no previous file with comments | « tools/gn/loader.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "tools/gn/loader.h" 5 #include "tools/gn/loader.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "tools/gn/build_settings.h" 10 #include "tools/gn/build_settings.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 Settings settings; 72 Settings settings;
73 73
74 bool is_toolchain_loaded; 74 bool is_toolchain_loaded;
75 bool is_config_loaded; 75 bool is_config_loaded;
76 76
77 std::vector<SourceFileAndOrigin> waiting_on_me; 77 std::vector<SourceFileAndOrigin> waiting_on_me;
78 }; 78 };
79 79
80 // ----------------------------------------------------------------------------- 80 // -----------------------------------------------------------------------------
81 81
82 const void* Loader::kDefaultToolchainKey = &kDefaultToolchainKey; 82 const void* const Loader::kDefaultToolchainKey = &kDefaultToolchainKey;
83 83
84 Loader::Loader() { 84 Loader::Loader() {
85 } 85 }
86 86
87 Loader::~Loader() { 87 Loader::~Loader() {
88 } 88 }
89 89
90 void Loader::Load(const Label& label, const LocationRange& origin) { 90 void Loader::Load(const Label& label, const LocationRange& origin) {
91 Load(BuildFileForLabel(label), origin, label.GetToolchainLabel()); 91 Load(BuildFileForLabel(label), origin, label.GetToolchainLabel());
92 } 92 }
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 // Do not return early, we must call DecrementPendingLoads() at the bottom. 343 // Do not return early, we must call DecrementPendingLoads() at the bottom.
344 344
345 ToolchainRecordMap::iterator found_toolchain = toolchain_records_.find(label); 345 ToolchainRecordMap::iterator found_toolchain = toolchain_records_.find(label);
346 ToolchainRecord* record = nullptr; 346 ToolchainRecord* record = nullptr;
347 if (found_toolchain == toolchain_records_.end()) { 347 if (found_toolchain == toolchain_records_.end()) {
348 // When loading the default build config, we'll insert it into the record 348 // When loading the default build config, we'll insert it into the record
349 // map with an empty label since we don't yet know what to call it. 349 // map with an empty label since we don't yet know what to call it.
350 // 350 //
351 // In this case, we should have exactly one entry in the map with an empty 351 // In this case, we should have exactly one entry in the map with an empty
352 // label. We now need to fix up the naming so it refers to the "real" one. 352 // label. We now need to fix up the naming so it refers to the "real" one.
353 CHECK(toolchain_records_.size() == 1); 353 CHECK_EQ(1U, toolchain_records_.size());
354 ToolchainRecordMap::iterator empty_label = toolchain_records_.find(Label()); 354 ToolchainRecordMap::iterator empty_label = toolchain_records_.find(Label());
355 CHECK(empty_label != toolchain_records_.end()); 355 CHECK(empty_label != toolchain_records_.end());
356 356
357 // Fix up the toolchain record. 357 // Fix up the toolchain record.
358 record = empty_label->second; 358 record = empty_label->second;
359 toolchain_records_[label] = record; 359 toolchain_records_[label] = record;
360 toolchain_records_.erase(empty_label); 360 toolchain_records_.erase(empty_label);
361 361
362 // Save the default toolchain label. 362 // Save the default toolchain label.
363 default_toolchain_label_ = label; 363 default_toolchain_label_ = label;
(...skipping 27 matching lines...) Expand all
391 391
392 // Schedule all waiting file loads. 392 // Schedule all waiting file loads.
393 for (const auto& waiting : record->waiting_on_me) 393 for (const auto& waiting : record->waiting_on_me)
394 ScheduleLoadFile(&record->settings, waiting.origin, waiting.file); 394 ScheduleLoadFile(&record->settings, waiting.origin, waiting.file);
395 record->waiting_on_me.clear(); 395 record->waiting_on_me.clear();
396 396
397 DecrementPendingLoads(); 397 DecrementPendingLoads();
398 } 398 }
399 399
400 void LoaderImpl::DecrementPendingLoads() { 400 void LoaderImpl::DecrementPendingLoads() {
401 DCHECK(pending_loads_ > 0); 401 DCHECK_GT(pending_loads_, 0);
402 pending_loads_--; 402 pending_loads_--;
403 if (pending_loads_ == 0 && !complete_callback_.is_null()) 403 if (pending_loads_ == 0 && !complete_callback_.is_null())
404 complete_callback_.Run(); 404 complete_callback_.Run();
405 } 405 }
406 406
407 bool LoaderImpl::AsyncLoadFile( 407 bool LoaderImpl::AsyncLoadFile(
408 const LocationRange& origin, 408 const LocationRange& origin,
409 const BuildSettings* build_settings, 409 const BuildSettings* build_settings,
410 const SourceFile& file_name, 410 const SourceFile& file_name,
411 const base::Callback<void(const ParseNode*)>& callback, 411 const base::Callback<void(const ParseNode*)>& callback,
412 Err* err) { 412 Err* err) {
413 if (async_load_file_.is_null()) { 413 if (async_load_file_.is_null()) {
414 return g_scheduler->input_file_manager()->AsyncLoadFile( 414 return g_scheduler->input_file_manager()->AsyncLoadFile(
415 origin, build_settings, file_name, callback, err); 415 origin, build_settings, file_name, callback, err);
416 } 416 }
417 return async_load_file_.Run( 417 return async_load_file_.Run(
418 origin, build_settings, file_name, callback, err); 418 origin, build_settings, file_name, callback, err);
419 } 419 }
OLDNEW
« 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