From a30735c3069fdfa66bc24b1f9186272f9a9b1a0d Mon Sep 17 00:00:00 2001 From: Yanis48 Date: Sat, 19 Dec 2020 14:47:22 +0100 Subject: use ListMultimap when indexing jar --- .../java/cuchaz/enigma/analysis/index/JarIndex.java | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'enigma/src/main/java') diff --git a/enigma/src/main/java/cuchaz/enigma/analysis/index/JarIndex.java b/enigma/src/main/java/cuchaz/enigma/analysis/index/JarIndex.java index d41731f..aa360cf 100644 --- a/enigma/src/main/java/cuchaz/enigma/analysis/index/JarIndex.java +++ b/enigma/src/main/java/cuchaz/enigma/analysis/index/JarIndex.java @@ -11,8 +11,7 @@ package cuchaz.enigma.analysis.index; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; +import com.google.common.collect.*; import cuchaz.enigma.Enigma; import cuchaz.enigma.ProgressListener; import cuchaz.enigma.analysis.ReferenceTargetType; @@ -37,7 +36,7 @@ public class JarIndex implements JarIndexer { private final Collection indexers; private final Multimap methodImplementations = HashMultimap.create(); - private final Map> childrenByClass; + private final ListMultimap childrenByClass; public JarIndex(EntryIndex entryIndex, InheritanceIndex inheritanceIndex, ReferenceIndex referenceIndex, BridgeMethodIndex bridgeMethodIndex, PackageVisibilityIndex packageVisibilityIndex) { this.entryIndex = entryIndex; @@ -47,7 +46,7 @@ public class JarIndex implements JarIndexer { this.packageVisibilityIndex = packageVisibilityIndex; this.indexers = Arrays.asList(entryIndex, inheritanceIndex, referenceIndex, bridgeMethodIndex, packageVisibilityIndex); this.entryResolver = new IndexEntryResolver(this); - this.childrenByClass = new HashMap<>(); + this.childrenByClass = ArrayListMultimap.create(); } public static JarIndex empty() { @@ -100,10 +99,8 @@ public class JarIndex implements JarIndexer { } indexers.forEach(indexer -> indexer.indexClass(classEntry)); - childrenByClass.putIfAbsent(classEntry, new ArrayList<>()); if (classEntry.isInnerClass() && !classEntry.getAccess().isSynthetic()) { - childrenByClass.putIfAbsent(classEntry.getParent(), new ArrayList<>()); - childrenByClass.get(classEntry.getParent()).add(classEntry); + childrenByClass.put(classEntry.getParent(), classEntry); } } @@ -115,8 +112,7 @@ public class JarIndex implements JarIndexer { indexers.forEach(indexer -> indexer.indexField(fieldEntry)); if (!fieldEntry.getAccess().isSynthetic()) { - childrenByClass.putIfAbsent(fieldEntry.getParent(), new ArrayList<>()); - childrenByClass.get(fieldEntry.getParent()).add(fieldEntry); + childrenByClass.put(fieldEntry.getParent(), fieldEntry); } } @@ -128,8 +124,7 @@ public class JarIndex implements JarIndexer { indexers.forEach(indexer -> indexer.indexMethod(methodEntry)); if (!methodEntry.getAccess().isSynthetic() && !methodEntry.getName().equals("")) { - childrenByClass.putIfAbsent(methodEntry.getParent(), new ArrayList<>()); - childrenByClass.get(methodEntry.getParent()).add(methodEntry); + childrenByClass.put(methodEntry.getParent(), methodEntry); } if (!methodEntry.isConstructor()) { @@ -188,7 +183,7 @@ public class JarIndex implements JarIndexer { return entryResolver; } - public Map> getChildrenByClass() { + public ListMultimap getChildrenByClass() { return this.childrenByClass; } -- cgit v1.2.3