diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java | 27 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java | 6 |
2 files changed, 20 insertions, 13 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 diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java index 92874215cd..957036707e 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java @@ -43,12 +43,6 @@ public class ConfiguredTargetKey extends ActionLookupKey { this.configurationKey = configurationKey; } - /** Use {@link #of(ConfiguredTarget, BuildConfiguration)} instead of this. */ - @Deprecated - public static ConfiguredTargetKey of(ConfiguredTarget configuredTarget) { - return of(configuredTarget, configuredTarget.getConfiguration()); - } - private static Label getLabel(ConfiguredTarget configuredTarget) { AliasProvider aliasProvider = configuredTarget.getProvider(AliasProvider.class); return aliasProvider != null |