diff options
author | Sebastien Hertz <shertz@google.com> | 2017-10-24 14:45:27 +0200 |
---|---|---|
committer | Sebastien Hertz <shertz@google.com> | 2017-10-24 14:45:27 +0200 |
commit | 436e1bfa7f7f2833c199a00bff220c2661c8517f (patch) | |
tree | cb6c615c40adf247f51a8b624da0490bfb885075 | |
parent | 02f4ca141444294e91ed58eeae1252dc076938d5 (diff) | |
download | r8-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
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); |