From 3f241a4869370f124edc764a4f81cd8a35da7ad1 Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Wed, 11 Nov 2015 22:34:05 +0000 Subject: When determining a dep's dynamic configuration, apply the configuration transition *before* trimming the options. This is because the transition may read fragments that aren't in the dep itself. -- MOS_MIGRATED_REVID=107624186 --- .../devtools/build/lib/skyframe/ConfiguredTargetFunction.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java') diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java index 76ac0f8665..d706363952 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java @@ -403,15 +403,15 @@ final class ConfiguredTargetFunction implements SkyFunction { Verify.verify(transition == Attribute.ConfigurationTransition.NONE || transition instanceof PatchTransition); BuildOptions fromOptions = ctgOptions; - if (!sameFragments) { - // TODO(bazel-team): pre-compute getOptionsClasses in the constructor. - fromOptions = fromOptions.trim(BuildConfiguration.getOptionsClasses( - transitiveDepInfo.getTransitiveConfigFragments(), ruleClassProvider)); - } // TODO(bazel-team): safety-check that the below call never mutates fromOptions. toOptions = transition == Attribute.ConfigurationTransition.NONE ? fromOptions : ((PatchTransition) transition).apply(fromOptions); + if (!sameFragments) { + // TODO(bazel-team): pre-compute getOptionsClasses in the constructor. + toOptions = toOptions.trim(BuildConfiguration.getOptionsClasses( + transitiveDepInfo.getTransitiveConfigFragments(), ruleClassProvider)); + } transitionsMap.put(transitionKey, toOptions); } -- cgit v1.2.3