[ApiModel] Do not hold a direct reference to an obsolete app
Bug: b/224933116
Change-Id: Ia83cea22c883b239d81745597109ac9246c7c661
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/apimodel/ApiInvokeOutlinerDesugaring.java b/src/main/java/com/android/tools/r8/ir/desugar/apimodel/ApiInvokeOutlinerDesugaring.java
index 96dd388..aa2ecfa 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/apimodel/ApiInvokeOutlinerDesugaring.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/apimodel/ApiInvokeOutlinerDesugaring.java
@@ -12,7 +12,6 @@
import com.android.tools.r8.cf.code.CfInvoke;
import com.android.tools.r8.contexts.CompilationContext.MethodProcessingContext;
import com.android.tools.r8.contexts.CompilationContext.UniqueContext;
-import com.android.tools.r8.graph.AppInfoWithClassHierarchy;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexClass;
import com.android.tools.r8.graph.DexEncodedMethod;
@@ -42,12 +41,10 @@
public class ApiInvokeOutlinerDesugaring implements CfInstructionDesugaring {
private final AppView<?> appView;
- private final AppInfoWithClassHierarchy appInfoWithClassHierarchy;
private final AndroidApiLevelCompute apiLevelCompute;
public ApiInvokeOutlinerDesugaring(AppView<?> appView, AndroidApiLevelCompute apiLevelCompute) {
this.appView = appView;
- this.appInfoWithClassHierarchy = appView.appInfoForDesugaring();
this.apiLevelCompute = apiLevelCompute;
}
@@ -130,15 +127,17 @@
return result;
}
TraversalContinuation<DexEncodedMethod> traversalResult =
- appInfoWithClassHierarchy.traverseSuperClasses(
- holder,
- (ignored, superClass, ignored_) -> {
- DexEncodedMethod definition = superClass.lookupMethod(method);
- if (definition != null) {
- return TraversalContinuation.doBreak(definition);
- }
- return TraversalContinuation.doContinue();
- });
+ appView
+ .appInfoForDesugaring()
+ .traverseSuperClasses(
+ holder,
+ (ignored, superClass, ignored_) -> {
+ DexEncodedMethod definition = superClass.lookupMethod(method);
+ if (definition != null) {
+ return TraversalContinuation.doBreak(definition);
+ }
+ return TraversalContinuation.doContinue();
+ });
return traversalResult.isBreak() ? traversalResult.asBreak().getValue() : null;
}