Fix error prone failure from ProgramMethod comparison
Change-Id: I1f18872810774a5e073f6a7f91ddb8c9ebad6f5c
diff --git a/src/main/java/com/android/tools/r8/optimize/singlecaller/SingleCallerScanner.java b/src/main/java/com/android/tools/r8/optimize/singlecaller/SingleCallerScanner.java
index c0d5b6a..cf0719c 100644
--- a/src/main/java/com/android/tools/r8/optimize/singlecaller/SingleCallerScanner.java
+++ b/src/main/java/com/android/tools/r8/optimize/singlecaller/SingleCallerScanner.java
@@ -19,6 +19,7 @@
import com.android.tools.r8.lightir.LirInstructionView;
import com.android.tools.r8.lightir.LirOpcodes;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.ObjectUtils;
import com.android.tools.r8.utils.ThreadUtils;
import com.android.tools.r8.utils.collections.ProgramMethodMap;
import com.android.tools.r8.utils.collections.ProgramMethodSet;
@@ -55,7 +56,7 @@
traceResult.forEach(
(callee, caller) -> {
if (callee.getDefinition().hasCode()
- && caller != MULTIPLE_CALLERS
+ && ObjectUtils.notIdentical(caller, MULTIPLE_CALLERS)
&& !callee.isStructurallyEqualTo(caller)) {
singleCallerMethodCandidates.put(callee, caller);
}
@@ -86,7 +87,7 @@
}
threadLocalSingleCallerMethods.forEach(
(callee, caller) -> {
- if (caller == MULTIPLE_CALLERS) {
+ if (ObjectUtils.identical(caller, MULTIPLE_CALLERS)) {
singleCallerMethods.put(callee, MULTIPLE_CALLERS);
} else {
recordCallEdge(caller, callee, singleCallerMethods);