Remove memory regression introduced with OutputGroupInfo provider. Almost every target has an OutputGroupProvider. Do not create another Key->Provider map just for it. RELNOTES: None. PiperOrigin-RevId: 154937690
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/MergedConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/MergedConfiguredTarget.java index 2c0fcfb..bff4b1c 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/MergedConfiguredTarget.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/MergedConfiguredTarget.java
@@ -112,6 +112,9 @@ getAllProviders(base, aspects, ExtraActionArtifactsProvider.class)); TransitiveInfoProviderMap.Builder aspectProviders = TransitiveInfoProviderMap.builder(); + if (mergedOutputGroupProvider != null) { + aspectProviders.add(mergedOutputGroupProvider); + } if (mergedSkylarkProviders != null) { aspectProviders.add(mergedSkylarkProviders); } @@ -123,7 +126,8 @@ for (Map.Entry<Class<? extends TransitiveInfoProvider>, TransitiveInfoProvider> entry : aspect.getProviders().entrySet()) { Class<? extends TransitiveInfoProvider> providerClass = entry.getKey(); - if (SkylarkProviders.class.equals(providerClass) + if (OutputGroupProvider.class.equals(providerClass) + || SkylarkProviders.class.equals(providerClass) || ExtraActionArtifactsProvider.class.equals(providerClass)) { continue; }