diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-04 19:19:59 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-04 19:19:59 +0000 |
commit | 132715e1e82b1f69fc5a67d3acedb24c12d02e2a (patch) | |
tree | d439dd489e8f11e40e9161c5e45188f62ff2d1e6 /tools/gn/target.cc | |
parent | 21bb906f7ce89a54bf8ecdb951771bb25069e43c (diff) | |
download | chromium_src-132715e1e82b1f69fc5a67d3acedb24c12d02e2a.zip chromium_src-132715e1e82b1f69fc5a67d3acedb24c12d02e2a.tar.gz chromium_src-132715e1e82b1f69fc5a67d3acedb24c12d02e2a.tar.bz2 |
GN: toolchain threading cleanup
Remove the thread-unsafe toolchain pointer on the otherwise-threadsafe Settings object. I replaced it with the toolchain label, and moved the is_default flag from the toolchain to the Settings object.
This required that I pass the toolchain around in a few more places, but also simplifies some other cases.
I removed the toolchain prefix from Ninja rules for the default toolchain since that's not necessary any more for GYP compat.
This fixes an annoying double-free in the toolchain manager. I think my current refactor will clean this up in a later phase.
R=scottmg@chromium.org
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=232657
Review URL: https://codereview.chromium.org/51693002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232755 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/gn/target.cc')
-rw-r--r-- | tools/gn/target.cc | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/tools/gn/target.cc b/tools/gn/target.cc index 291d579..28dcf91 100644 --- a/tools/gn/target.cc +++ b/tools/gn/target.cc @@ -57,8 +57,7 @@ void MergeAllDependentConfigsFrom(const Target* from_target, } // namespace Target::Target(const Settings* settings, const Label& label) - : Item(label), - settings_(settings), + : Item(settings, label), output_type_(UNKNOWN), hard_dep_(false), external_(false), @@ -155,9 +154,9 @@ void Target::OnResolved() { } // Mark as resolved. - if (!settings_->build_settings()->target_resolved_callback().is_null()) { + if (!settings()->build_settings()->target_resolved_callback().is_null()) { g_scheduler->ScheduleWork(base::Bind(&TargetResolvedThunk, - settings_->build_settings()->target_resolved_callback(), + settings()->build_settings()->target_resolved_callback(), this)); } } |