aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java
index 0af84d64d1..9187d41d2f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java
@@ -24,7 +24,6 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSetMultimap;
import com.google.common.collect.Ordering;
-import com.google.common.collect.Sets;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
@@ -41,7 +40,6 @@ import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Set;
/**
* Support for generating Objective C proto static libraries that registers actions which generate
@@ -332,7 +330,8 @@ final class ProtobufSupport {
protoSets.add(protoProvider.getTransitiveProtoSources());
}
- HashMap<Artifact, Set<Artifact>> protoToGroupMap = new HashMap<>();
+ HashMap<Artifact, ImmutableSet<Artifact>> protoToGroupMap =
+ new HashMap<Artifact, ImmutableSet<Artifact>>();
// For each proto in each proto group, store the smallest group in which it is contained. This
// group will be considered the smallest input group with which the proto can be generated.
@@ -344,10 +343,9 @@ final class ProtobufSupport {
if (attributes.isProtoWellKnown(proto)) {
continue;
}
- if (!protoToGroupMap.containsKey(proto)) {
+ if (!protoToGroupMap.containsKey(proto)
+ || protoToGroupMap.get(proto).size() > protoSet.size()) {
protoToGroupMap.put(proto, protoSet);
- } else {
- protoToGroupMap.put(proto, Sets.intersection(protoSet, protoToGroupMap.get(proto)));
}
}
}
@@ -363,7 +361,7 @@ final class ProtobufSupport {
ImmutableSetMultimap.builder();
for (Artifact proto : protoToGroupMap.keySet()) {
- inputsToOutputsMapBuilder.put(ImmutableSet.copyOf(protoToGroupMap.get(proto)), proto);
+ inputsToOutputsMapBuilder.put(protoToGroupMap.get(proto), proto);
}
return inputsToOutputsMapBuilder.build();
}