aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Hertz <shertz@google.com>2017-10-24 14:45:27 +0200
committerSebastien Hertz <shertz@google.com>2017-10-24 14:45:27 +0200
commit436e1bfa7f7f2833c199a00bff220c2661c8517f (patch)
treecb6c615c40adf247f51a8b624da0490bfb885075
parent02f4ca141444294e91ed58eeae1252dc076938d5 (diff)
downloadr8-436e1bfa7f7f2833c199a00bff220c2661c8517f.tar.gz
Remove use of Hashtable
The Hashtable class is deprecated. This CL replaces its usage by either by HashMap or Int2IntArrayMap. Change-Id: I17793081eeb2cb756aff473d29963e4c2279d696
-rw-r--r--src/main/java/com/android/tools/r8/dex/DexFileReader.java4
-rw-r--r--src/main/java/com/android/tools/r8/dex/FileWriter.java6
-rw-r--r--src/main/java/com/android/tools/r8/graph/AppInfoWithSubtyping.java10
-rw-r--r--src/main/java/com/android/tools/r8/graph/DexCode.java4
-rw-r--r--src/main/java/com/android/tools/r8/naming/ClassNameMapper.java4
5 files changed, 14 insertions, 14 deletions
diff --git a/src/main/java/com/android/tools/r8/dex/DexFileReader.java b/src/main/java/com/android/tools/r8/dex/DexFileReader.java
index 817583429..770afdf06 100644
--- a/src/main/java/com/android/tools/r8/dex/DexFileReader.java
+++ b/src/main/java/com/android/tools/r8/dex/DexFileReader.java
@@ -53,6 +53,7 @@ import com.android.tools.r8.graph.DexValue.DexValueString;
import com.android.tools.r8.graph.OffsetToObjectMapping;
import com.android.tools.r8.logging.Log;
import com.android.tools.r8.utils.ProgramResource.Kind;
+import it.unimi.dsi.fastutil.ints.Int2IntArrayMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import java.io.ByteArrayOutputStream;
@@ -62,7 +63,6 @@ import java.nio.ShortBuffer;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Hashtable;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Supplier;
@@ -751,7 +751,7 @@ public class DexFileReader {
file.getUshort(); // Skip padding ushort
}
if (triesSize > 0) {
- Hashtable<Integer, Integer> handlerMap = new Hashtable<>();
+ Int2IntArrayMap handlerMap = new Int2IntArrayMap();
// tries: try_item[tries_size].
for (int i = 0; i < triesSize; i++) {
int startAddr = file.getUint();
diff --git a/src/main/java/com/android/tools/r8/dex/FileWriter.java b/src/main/java/com/android/tools/r8/dex/FileWriter.java
index da3722f20..41f974849 100644
--- a/src/main/java/com/android/tools/r8/dex/FileWriter.java
+++ b/src/main/java/com/android/tools/r8/dex/FileWriter.java
@@ -63,7 +63,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
-import java.util.Hashtable;
+import java.util.HashMap;
import java.util.IdentityHashMap;
import java.util.List;
import java.util.Map;
@@ -1024,8 +1024,8 @@ public class FileWriter {
= createObject2IntMap();
private final Object2IntMap<DexProgramClass> classesWithData = createObject2IntMap();
private final Object2IntMap<DexEncodedArray> encodedArrays = createObject2IntMap();
- private final Hashtable<DexProgramClass, DexAnnotationDirectory> clazzToAnnotationDirectory
- = new Hashtable<>();
+ private final Map<DexProgramClass, DexAnnotationDirectory> clazzToAnnotationDirectory
+ = new HashMap<>();
private static <T> Object2IntMap<T> createObject2IntMap() {
Object2IntMap<T> result = new Object2IntLinkedOpenHashMap<>();
diff --git a/src/main/java/com/android/tools/r8/graph/AppInfoWithSubtyping.java b/src/main/java/com/android/tools/r8/graph/AppInfoWithSubtyping.java
index 093442bfc..a2caf1d2f 100644
--- a/src/main/java/com/android/tools/r8/graph/AppInfoWithSubtyping.java
+++ b/src/main/java/com/android/tools/r8/graph/AppInfoWithSubtyping.java
@@ -8,7 +8,7 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
import java.util.Collections;
import java.util.HashSet;
-import java.util.Hashtable;
+import java.util.IdentityHashMap;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
@@ -18,7 +18,7 @@ public class AppInfoWithSubtyping extends AppInfo {
// Set of missing classes, discovered during subtypeMap computation.
private Set<DexType> missingClasses = Sets.newIdentityHashSet();
// Map from types to their subtypes.
- private final Hashtable<DexType, ImmutableSet<DexType>> subtypeMap = new Hashtable<>();
+ private final Map<DexType, ImmutableSet<DexType>> subtypeMap = new IdentityHashMap<>();
public AppInfoWithSubtyping(DexApplication application) {
super(application);
@@ -57,7 +57,7 @@ public class AppInfoWithSubtyping extends AppInfo {
return subtypes == null ? ImmutableSet.of() : subtypes;
}
- private void populateSuperType(Hashtable<DexType, Set<DexType>> map, DexType superType,
+ private void populateSuperType(Map<DexType, Set<DexType>> map, DexType superType,
DexClass baseClass, Function<DexType, DexClass> definitions) {
if (superType != null) {
Set<DexType> set = map.computeIfAbsent(superType, ignore -> new HashSet<>());
@@ -68,7 +68,7 @@ public class AppInfoWithSubtyping extends AppInfo {
}
}
- private void populateAllSuperTypes(Hashtable<DexType, Set<DexType>> map, DexType holder,
+ private void populateAllSuperTypes(Map<DexType, Set<DexType>> map, DexType holder,
DexClass baseClass, Function<DexType, DexClass> definitions) {
DexClass holderClass = definitions.apply(holder);
// Skip if no corresponding class is found.
@@ -98,7 +98,7 @@ public class AppInfoWithSubtyping extends AppInfo {
private void populateSubtypeMap(DirectMappedDexApplication app, DexItemFactory dexItemFactory) {
dexItemFactory.clearSubtypeInformation();
dexItemFactory.objectType.tagAsSubtypeRoot();
- Hashtable<DexType, Set<DexType>> map = new Hashtable<>();
+ Map<DexType, Set<DexType>> map = new IdentityHashMap<>();
for (DexClass clazz : Iterables.<DexClass>concat(app.classes(), app.libraryClasses())) {
populateAllSuperTypes(map, clazz.type, clazz, app::definitionFor);
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexCode.java b/src/main/java/com/android/tools/r8/graph/DexCode.java
index 9267f7dc6..6a2fcbf51 100644
--- a/src/main/java/com/android/tools/r8/graph/DexCode.java
+++ b/src/main/java/com/android/tools/r8/graph/DexCode.java
@@ -17,11 +17,11 @@ import com.android.tools.r8.ir.conversion.IRBuilder;
import com.android.tools.r8.naming.ClassNameMapper;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.StringUtils;
+import it.unimi.dsi.fastutil.ints.Int2IntMap;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
@@ -359,7 +359,7 @@ public class DexCode extends Code {
this.handlerIndex = NO_INDEX;
}
- public void setHandlerIndex(Hashtable<Integer, Integer> map) {
+ public void setHandlerIndex(Int2IntMap map) {
handlerIndex = map.get(handlerOffset);
}
diff --git a/src/main/java/com/android/tools/r8/naming/ClassNameMapper.java b/src/main/java/com/android/tools/r8/naming/ClassNameMapper.java
index 504cc4afe..1360964ad 100644
--- a/src/main/java/com/android/tools/r8/naming/ClassNameMapper.java
+++ b/src/main/java/com/android/tools/r8/naming/ClassNameMapper.java
@@ -17,7 +17,7 @@ import com.google.common.collect.ImmutableMap;
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
-import java.util.Hashtable;
+import java.util.HashMap;
import java.util.Map;
import java.util.function.Consumer;
@@ -26,7 +26,7 @@ public class ClassNameMapper {
private final ImmutableMap<String, ClassNaming> classNameMappings;
private ImmutableBiMap<String, String> nameMapping;
- private Hashtable<Signature, Signature> signatureMap = new Hashtable<>();
+ private Map<Signature, Signature> signatureMap = new HashMap<>();
ClassNameMapper(Map<String, ClassNaming> classNameMappings) {
this.classNameMappings = ImmutableMap.copyOf(classNameMappings);