diff options
author | dslomov <dslomov@google.com> | 2017-07-05 07:23:31 -0400 |
---|---|---|
committer | John Cater <jcater@google.com> | 2017-07-05 10:58:56 -0400 |
commit | f6a7e5a39ee5669c0fdfce93032cab45d6c89358 (patch) | |
tree | 9905a5e85f19a94eb4cd0082d6a146d9e06a0c3b /src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java | |
parent | 2843eadf4c1d9175c60d32ffd2cba2100256c1fd (diff) |
Use the same data structure for native and Skylark providers.
The memory cost of adding Skylark provider is now the same as native.
Skylark providers (declared and legacy) benefit from the same
shape-sharing optimization as native providers.
RELNOTES: None.
PiperOrigin-RevId: 160944263
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java | 33 |
1 files changed, 2 insertions, 31 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java index 7f8a72f54c..ac5b483a22 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java @@ -337,16 +337,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { } /** - * Adds a mapping that determines which keys in structs returned by skylark rules should be - * interpreted as native TransitiveInfoProvider instances of type (map value). - */ - public Builder registerSkylarkProvider( - String name, Class<? extends TransitiveInfoProvider> provider) { - this.registeredSkylarkProviders.put(name, provider); - return this; - } - - /** * Do not use - this only exists for backwards compatibility! Platform regexps are part of a * legacy mechanism - {@code vardef} - that is not exposed in Bazel. * @@ -442,8 +432,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { universalFragment, prerequisiteValidator, skylarkAccessibleTopLevels.build(), - skylarkModules.build(), - registeredSkylarkProviders.build()); + skylarkModules.build()); } @Override @@ -551,9 +540,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { private final Environment.Frame globals; - private final ImmutableBiMap<String, Class<? extends TransitiveInfoProvider>> - registeredSkylarkProviders; - private ConfiguredRuleClassProvider( String productName, Label preludeLabel, @@ -571,8 +557,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { Class<? extends BuildConfiguration.Fragment> universalFragment, PrerequisiteValidator prerequisiteValidator, ImmutableMap<String, Object> skylarkAccessibleJavaClasses, - ImmutableList<Class<?>> skylarkModules, - ImmutableBiMap<String, Class<? extends TransitiveInfoProvider>> registeredSkylarkProviders) { + ImmutableList<Class<?>> skylarkModules) { this.productName = productName; this.preludeLabel = preludeLabel; this.runfilesPrefix = runfilesPrefix; @@ -589,7 +574,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { this.universalFragment = universalFragment; this.prerequisiteValidator = prerequisiteValidator; this.globals = createGlobals(skylarkAccessibleJavaClasses, skylarkModules); - this.registeredSkylarkProviders = registeredSkylarkProviders; } public String getProductName() { @@ -689,19 +673,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { } /** - * Returns a map that indicates which keys in structs returned by skylark rules should be - * interpreted as native TransitiveInfoProvider instances of type (map value). - * - * <p>That is, if this map contains "dummy" -> DummyProvider.class, a "dummy" entry in a skylark - * rule implementation's returned struct will be exported from that ConfiguredTarget as a - * DummyProvider. - */ - public ImmutableBiMap<String, Class<? extends TransitiveInfoProvider>> - getRegisteredSkylarkProviders() { - return this.registeredSkylarkProviders; - } - - /** * Creates a BuildOptions class for the given options taken from an optionsProvider. */ public BuildOptions createBuildOptions(OptionsClassProvider optionsProvider) { |