aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
diff options
context:
space:
mode:
authorGravatar dslomov <dslomov@google.com>2017-07-05 07:23:31 -0400
committerGravatar John Cater <jcater@google.com>2017-07-05 10:58:56 -0400
commitf6a7e5a39ee5669c0fdfce93032cab45d6c89358 (patch)
tree9905a5e85f19a94eb4cd0082d6a146d9e06a0c3b /src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
parent2843eadf4c1d9175c60d32ffd2cba2100256c1fd (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/FileConfiguredTarget.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
index 7b68c7b2b3..0659bb86cd 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
@@ -18,7 +18,9 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
+import com.google.devtools.build.lib.packages.ClassObjectConstructor;
import com.google.devtools.build.lib.packages.FileTarget;
+import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.rules.fileset.FilesetProvider;
import com.google.devtools.build.lib.rules.test.InstrumentedFilesProvider;
import com.google.devtools.build.lib.util.FileType;
@@ -77,4 +79,14 @@ public abstract class FileConfiguredTarget extends AbstractConfiguredTarget
AnalysisUtils.checkProvider(provider);
return providers.getProvider(provider);
}
+
+ @Override
+ protected SkylarkClassObject rawGetSkylarkProvider(ClassObjectConstructor.Key providerKey) {
+ return providers.getProvider(providerKey);
+ }
+
+ @Override
+ protected Object rawGetSkylarkProvider(String providerKey) {
+ return providers.getProvider(providerKey);
+ }
}