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

Side by Side Diff: tools/gn/scope.h

Issue 1869503004: Convert //tools to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase, change iwyu fixes for converted directories to include <memory> Created 4 years, 8 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/parser_unittest.cc ('k') | tools/gn/scope.cc » ('j') | 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 #ifndef TOOLS_GN_SCOPE_H_ 5 #ifndef TOOLS_GN_SCOPE_H_
6 #define TOOLS_GN_SCOPE_H_ 6 #define TOOLS_GN_SCOPE_H_
7 7
8 #include <map> 8 #include <map>
9 #include <memory>
9 #include <set> 10 #include <set>
10 #include <utility> 11 #include <utility>
11 12
12 #include "base/containers/hash_tables.h" 13 #include "base/containers/hash_tables.h"
13 #include "base/macros.h" 14 #include "base/macros.h"
14 #include "base/memory/ref_counted.h" 15 #include "base/memory/ref_counted.h"
15 #include "base/memory/scoped_ptr.h"
16 #include "base/memory/scoped_vector.h" 16 #include "base/memory/scoped_vector.h"
17 #include "tools/gn/err.h" 17 #include "tools/gn/err.h"
18 #include "tools/gn/pattern.h" 18 #include "tools/gn/pattern.h"
19 #include "tools/gn/source_dir.h" 19 #include "tools/gn/source_dir.h"
20 #include "tools/gn/value.h" 20 #include "tools/gn/value.h"
21 21
22 class FunctionCallNode; 22 class FunctionCallNode;
23 class ImportManager; 23 class ImportManager;
24 class Item; 24 class Item;
25 class ParseNode; 25 class ParseNode;
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 const MergeOptions& options, 220 const MergeOptions& options,
221 const ParseNode* node_for_err, 221 const ParseNode* node_for_err,
222 const char* desc_for_err, 222 const char* desc_for_err,
223 Err* err) const; 223 Err* err) const;
224 224
225 // Constructs a scope that is a copy of the current one. Nested scopes will 225 // Constructs a scope that is a copy of the current one. Nested scopes will
226 // be collapsed until we reach a const containing scope. Private values will 226 // be collapsed until we reach a const containing scope. Private values will
227 // be included. The resulting closure will reference the const containing 227 // be included. The resulting closure will reference the const containing
228 // scope as its containing scope (since we assume the const scope won't 228 // scope as its containing scope (since we assume the const scope won't
229 // change, we don't have to copy its values). 229 // change, we don't have to copy its values).
230 scoped_ptr<Scope> MakeClosure() const; 230 std::unique_ptr<Scope> MakeClosure() const;
231 231
232 // Makes an empty scope with the given name. Returns NULL if the name is 232 // Makes an empty scope with the given name. Returns NULL if the name is
233 // already set. 233 // already set.
234 Scope* MakeTargetDefaults(const std::string& target_type); 234 Scope* MakeTargetDefaults(const std::string& target_type);
235 235
236 // Gets the scope associated with the given target name, or null if it hasn't 236 // Gets the scope associated with the given target name, or null if it hasn't
237 // been set. 237 // been set.
238 const Scope* GetTargetDefaults(const std::string& target_type) const; 238 const Scope* GetTargetDefaults(const std::string& target_type) const;
239 239
240 // Filter to apply when the sources variable is assigned. May return NULL. 240 // Filter to apply when the sources variable is assigned. May return NULL.
241 const PatternList* GetSourcesAssignmentFilter() const; 241 const PatternList* GetSourcesAssignmentFilter() const;
242 void set_sources_assignment_filter( 242 void set_sources_assignment_filter(std::unique_ptr<PatternList> f) {
243 scoped_ptr<PatternList> f) {
244 sources_assignment_filter_ = std::move(f); 243 sources_assignment_filter_ = std::move(f);
245 } 244 }
246 245
247 // Indicates if we're currently processing the build configuration file. 246 // Indicates if we're currently processing the build configuration file.
248 // This is true when processing the config file for any toolchain. 247 // This is true when processing the config file for any toolchain.
249 // 248 //
250 // To set or clear the flag, it must currently be in the opposite state in 249 // To set or clear the flag, it must currently be in the opposite state in
251 // the current scope. Note that querying the state of the flag recursively 250 // the current scope. Note that querying the state of the flag recursively
252 // checks all containing scopes until it reaches the top or finds the flag 251 // checks all containing scopes until it reaches the top or finds the flag
253 // set. 252 // set.
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 RecordMap values_; 334 RecordMap values_;
336 335
337 // Owning pointers. Note that this can't use string pieces since the names 336 // Owning pointers. Note that this can't use string pieces since the names
338 // are constructed from Values which might be deallocated before this goes 337 // are constructed from Values which might be deallocated before this goes
339 // out of scope. 338 // out of scope.
340 typedef base::hash_map<std::string, Scope*> NamedScopeMap; 339 typedef base::hash_map<std::string, Scope*> NamedScopeMap;
341 NamedScopeMap target_defaults_; 340 NamedScopeMap target_defaults_;
342 341
343 // Null indicates not set and that we should fallback to the containing 342 // Null indicates not set and that we should fallback to the containing
344 // scope's filter. 343 // scope's filter.
345 scoped_ptr<PatternList> sources_assignment_filter_; 344 std::unique_ptr<PatternList> sources_assignment_filter_;
346 345
347 // Owning pointers, must be deleted. 346 // Owning pointers, must be deleted.
348 typedef std::map<std::string, scoped_refptr<const Template> > TemplateMap; 347 typedef std::map<std::string, scoped_refptr<const Template> > TemplateMap;
349 TemplateMap templates_; 348 TemplateMap templates_;
350 349
351 ItemVector* item_collector_; 350 ItemVector* item_collector_;
352 351
353 // Opaque pointers. See SetProperty() above. 352 // Opaque pointers. See SetProperty() above.
354 typedef std::map<const void*, void*> PropertyMap; 353 typedef std::map<const void*, void*> PropertyMap;
355 PropertyMap properties_; 354 PropertyMap properties_;
356 355
357 typedef std::set<ProgrammaticProvider*> ProviderSet; 356 typedef std::set<ProgrammaticProvider*> ProviderSet;
358 ProviderSet programmatic_providers_; 357 ProviderSet programmatic_providers_;
359 358
360 SourceDir source_dir_; 359 SourceDir source_dir_;
361 360
362 DISALLOW_COPY_AND_ASSIGN(Scope); 361 DISALLOW_COPY_AND_ASSIGN(Scope);
363 }; 362 };
364 363
365 #endif // TOOLS_GN_SCOPE_H_ 364 #endif // TOOLS_GN_SCOPE_H_
OLDNEW
« no previous file with comments | « tools/gn/parser_unittest.cc ('k') | tools/gn/scope.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698