Use shouldSkipPolicy() in NotTwoInitsWithMonitors for consistency
Change-Id: I7983d981d214f2e2f71056a600a152f194abbf47
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/PolicyScheduler.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/PolicyScheduler.java
index 1673079..be7bf1c 100644
--- a/src/main/java/com/android/tools/r8/horizontalclassmerging/PolicyScheduler.java
+++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/PolicyScheduler.java
@@ -296,10 +296,8 @@
new NoDifferentApiReferenceLevel(appView),
new NoIndirectRuntimeTypeChecks(appView, runtimeTypeCheckInfo),
new NoWeakerAccessPrivileges(appView, immediateSubtypingInfo),
- new PreventClassMethodAndDefaultMethodCollisions(appView, immediateSubtypingInfo));
- if (appView.options().canHaveIssueWithInlinedMonitors()) {
- builder.add(new NotTwoInitsWithMonitors());
- }
+ new PreventClassMethodAndDefaultMethodCollisions(appView, immediateSubtypingInfo),
+ new NotTwoInitsWithMonitors(appView));
}
private static void addMultiClassPoliciesForMergingNonSyntheticClasses(
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/NotTwoInitsWithMonitors.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/NotTwoInitsWithMonitors.java
index d5cebe2..3b7e6c7 100644
--- a/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/NotTwoInitsWithMonitors.java
+++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/NotTwoInitsWithMonitors.java
@@ -4,12 +4,19 @@
package com.android.tools.r8.horizontalclassmerging.policies;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.ProgramMethod;
public class NotTwoInitsWithMonitors extends AtMostOneClassThatMatchesPolicy {
+ private final AppView<?> appView;
+
+ public NotTwoInitsWithMonitors(AppView<?> appView) {
+ this.appView = appView;
+ }
+
@Override
public boolean atMostOneOf(DexProgramClass clazz) {
for (ProgramMethod initializer : clazz.programInstanceInitializers()) {
@@ -25,4 +32,9 @@
public String getName() {
return "NotTwoInitsWithMonitors";
}
+
+ @Override
+ public boolean shouldSkipPolicy() {
+ return !appView.options().canHaveIssueWithInlinedMonitors();
+ }
}