Null out JarApplicationReader when we have generated code
Keeping this alive is keeping the big string cache alive
Change-Id: Id18f5d579c845751dc41b3feb2020f7ba0f9d669
diff --git a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
index 4d8d00d..8feed9b 100644
--- a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
+++ b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
@@ -98,7 +98,7 @@
}
private final Origin origin;
- private final JarApplicationReader application;
+ private JarApplicationReader application;
private CfCode code;
protected ReparseContext context;
private boolean reachabilitySensitive = false;
@@ -122,6 +122,8 @@
public CfCode asCfCode() {
if (code == null) {
ReparseContext context = this.context;
+ JarApplicationReader application = this.application;
+ assert application != null;
assert context != null;
// The ClassCodeVisitor is in charge of setting this.context to null.
try {
@@ -130,6 +132,7 @@
for (Code code : context.codeList) {
code.asLazyCfCode().code = null;
code.asLazyCfCode().context = context;
+ code.asLazyCfCode().application = application;
}
try {
parseCode(context, true);
@@ -155,6 +158,7 @@
assert this.context != null;
this.code = code;
this.context = null;
+ this.application = null;
}
@Override