aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/query2
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-03-27 14:38:52 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-27 14:41:06 -0700
commitcc3890d72713007d2f0c07be0f64a8e9fb185a1f (patch)
treed3ffdec11c53a200f1b2bc95837e860e1cb6744f /src/main/java/com/google/devtools/build/lib/query2
parent931c18258802c1036396e8f6c93ac109409b3185 (diff)
Remove ConfiguredTargetKey#of(ConfiguredTarget), since it calls ConfiguredTarget#getConfiguration.
PiperOrigin-RevId: 190676253
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/query2')
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java27
1 files changed, 20 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java
index a25592afc8..52e7dba46d 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java
@@ -111,8 +111,7 @@ public class ConfiguredTargetQueryEnvironment
private static final Function<SkyKey, ConfiguredTargetKey> SKYKEY_TO_CTKEY =
skyKey -> (ConfiguredTargetKey) skyKey.argument();
private static final ImmutableList<TargetPatternKey> ALL_PATTERNS;
- private static final KeyExtractor<ConfiguredTarget, ConfiguredTargetKey>
- CONFIGURED_TARGET_KEY_EXTRACTOR = ConfiguredTargetKey::of;
+ private final KeyExtractor<ConfiguredTarget, ConfiguredTargetKey> configuredTargetKeyExtractor;
/** Common query functions and cquery specific functions. */
public static final ImmutableList<QueryFunction> FUNCTIONS = populateFunctions();
@@ -151,6 +150,19 @@ public class ConfiguredTargetQueryEnvironment
this.pkgPath = pkgPath;
this.walkableGraphSupplier = walkableGraphSupplier;
this.accessor = new ConfiguredTargetAccessor(walkableGraphSupplier.get());
+ this.configuredTargetKeyExtractor =
+ element -> {
+ try {
+ return ConfiguredTargetKey.of(
+ element,
+ element.getConfigurationKey() == null
+ ? null
+ : ((BuildConfigurationValue) graph.getValue(element.getConfigurationKey()))
+ .getConfiguration());
+ } catch (InterruptedException e) {
+ throw new IllegalStateException("Interruption unexpected in configured query");
+ }
+ };
}
private void beforeEvaluateQuery() throws InterruptedException, QueryException {
@@ -556,7 +568,8 @@ public class ConfiguredTargetQueryEnvironment
@Override
public ImmutableList<ConfiguredTarget> getNodesOnPath(ConfiguredTarget from, ConfiguredTarget to)
throws InterruptedException {
- return SkyQueryUtils.getNodesOnPath(from, to, this::getFwdDeps, ConfiguredTargetKey::of);
+ return SkyQueryUtils.getNodesOnPath(
+ from, to, this::getFwdDeps, configuredTargetKeyExtractor::extractKey);
}
@Override
@@ -581,26 +594,26 @@ public class ConfiguredTargetQueryEnvironment
@Override
public ThreadSafeMutableSet<ConfiguredTarget> createThreadSafeMutableSet() {
return new ThreadSafeMutableKeyExtractorBackedSetImpl<>(
- CONFIGURED_TARGET_KEY_EXTRACTOR,
+ configuredTargetKeyExtractor,
ConfiguredTarget.class,
SkyQueryEnvironment.DEFAULT_THREAD_COUNT);
}
@Override
public <V> MutableMap<ConfiguredTarget, V> createMutableMap() {
- return new MutableKeyExtractorBackedMapImpl<>(CONFIGURED_TARGET_KEY_EXTRACTOR);
+ return new MutableKeyExtractorBackedMapImpl<>(configuredTargetKeyExtractor);
}
@Override
public Uniquifier<ConfiguredTarget> createUniquifier() {
return new UniquifierImpl<>(
- CONFIGURED_TARGET_KEY_EXTRACTOR, SkyQueryEnvironment.DEFAULT_THREAD_COUNT);
+ configuredTargetKeyExtractor, SkyQueryEnvironment.DEFAULT_THREAD_COUNT);
}
@Override
public MinDepthUniquifier<ConfiguredTarget> createMinDepthUniquifier() {
return new MinDepthUniquifierImpl<>(
- CONFIGURED_TARGET_KEY_EXTRACTOR, SkyQueryEnvironment.DEFAULT_THREAD_COUNT);
+ configuredTargetKeyExtractor, SkyQueryEnvironment.DEFAULT_THREAD_COUNT);
}
@Override