[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; }