Make MinimumKeepInfoCollection thread safe
Bug: 201495567
Change-Id: I26a1d82b72fba986cca383d458fb6a6f4a978b3d
diff --git a/src/main/java/com/android/tools/r8/shaking/DependentMinimumKeepInfoCollection.java b/src/main/java/com/android/tools/r8/shaking/DependentMinimumKeepInfoCollection.java
index aca76da..8e48dfe 100644
--- a/src/main/java/com/android/tools/r8/shaking/DependentMinimumKeepInfoCollection.java
+++ b/src/main/java/com/android/tools/r8/shaking/DependentMinimumKeepInfoCollection.java
@@ -21,8 +21,8 @@
import com.android.tools.r8.shaking.KeepInfo.Joiner;
import com.android.tools.r8.utils.MapUtils;
import com.android.tools.r8.utils.TriConsumer;
-import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.function.BiConsumer;
import java.util.function.Function;
@@ -31,12 +31,7 @@
private final Map<EnqueuerEvent, MinimumKeepInfoCollection> dependentMinimumKeepInfo;
public DependentMinimumKeepInfoCollection() {
- this(new HashMap<>());
- }
-
- private DependentMinimumKeepInfoCollection(
- Map<EnqueuerEvent, MinimumKeepInfoCollection> dependentMinimumKeepInfo) {
- this.dependentMinimumKeepInfo = dependentMinimumKeepInfo;
+ this.dependentMinimumKeepInfo = new ConcurrentHashMap<>();
}
public void forEach(BiConsumer<EnqueuerEvent, MinimumKeepInfoCollection> consumer) {
diff --git a/src/main/java/com/android/tools/r8/shaking/MinimumKeepInfoCollection.java b/src/main/java/com/android/tools/r8/shaking/MinimumKeepInfoCollection.java
index 9f97e63..ec1594a 100644
--- a/src/main/java/com/android/tools/r8/shaking/MinimumKeepInfoCollection.java
+++ b/src/main/java/com/android/tools/r8/shaking/MinimumKeepInfoCollection.java
@@ -20,8 +20,8 @@
import com.android.tools.r8.shaking.KeepInfo.Joiner;
import com.android.tools.r8.utils.MapUtils;
import java.util.Collections;
-import java.util.IdentityHashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.function.BiConsumer;
import java.util.function.BiPredicate;
import java.util.function.Predicate;
@@ -34,7 +34,7 @@
private final Map<DexReference, KeepInfo.Joiner<?, ?, ?>> minimumKeepInfo;
public MinimumKeepInfoCollection() {
- this(new IdentityHashMap<>());
+ this(new ConcurrentHashMap<>());
}
private MinimumKeepInfoCollection(Map<DexReference, KeepInfo.Joiner<?, ?, ?>> minimumKeepInfo) {