java-topology/defects/javac/patch/javac-0004-dependencies-linkedhashset.patch

39 lines
1.6 KiB
Diff

# UNDF: UNDF-2026-000000120
diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/Dependencies.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/Dependencies.java
index 48f29c2a..841b18d1 100644
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/Dependencies.java
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/Dependencies.java
@@ -37,7 +37,7 @@
import java.io.Closeable;
import java.io.FileWriter;
import java.io.IOException;
-import java.util.ArrayList;
+import java.util.LinkedHashSet;
import java.util.Arrays;
import java.util.Collection;
import java.util.EnumMap;
@@ -184,21 +184,18 @@ public abstract static class Node extends GraphUtils.AbstractNode<ClassSymbol, N
/**
* dependent nodes grouped by kind
*/
- EnumMap<CompletionCause, List<Node>> depsByKind;
+ EnumMap<CompletionCause, LinkedHashSet<Node>> depsByKind;
Node(ClassSymbol value) {
super(value);
this.depsByKind = new EnumMap<>(CompletionCause.class);
for (CompletionCause depKind : CompletionCause.values()) {
- depsByKind.put(depKind, new ArrayList<>());
+ depsByKind.put(depKind, new LinkedHashSet<>());
}
}
void addDependency(DependencyKind depKind, Node dep) {
- List<Node> deps = depsByKind.get(depKind);
- if (!deps.contains(dep)) {
- deps.add(dep);
- }
+ depsByKind.get(depKind).add(dep);
}
@Override