Avoid duplicated local end events.
In particular for argument values, this could significantly blow up
the size of our dex files. This reduces a simple example dex file
from 21kB to 15kB.
R=zerny@google.com
Bug: 38375244
Change-Id: I36b1f309bba7ab0fab7f500815993ff0e6d30484
diff --git a/src/main/java/com/android/tools/r8/graph/DexDebugEventBuilder.java b/src/main/java/com/android/tools/r8/graph/DexDebugEventBuilder.java
index 26349c2..2342b3b 100644
--- a/src/main/java/com/android/tools/r8/graph/DexDebugEventBuilder.java
+++ b/src/main/java/com/android/tools/r8/graph/DexDebugEventBuilder.java
@@ -4,12 +4,6 @@
package com.android.tools.r8.graph;
import com.android.tools.r8.dex.Constants;
-import com.android.tools.r8.graph.DexDebugEvent.AdvanceLine;
-import com.android.tools.r8.graph.DexDebugEvent.AdvancePC;
-import com.android.tools.r8.graph.DexDebugEvent.Default;
-import com.android.tools.r8.graph.DexDebugEvent.EndLocal;
-import com.android.tools.r8.graph.DexDebugEvent.RestartLocal;
-import com.android.tools.r8.graph.DexDebugEvent.SetFile;
import com.android.tools.r8.graph.DexDebugEvent.StartLocal;
import com.android.tools.r8.ir.code.DebugPosition;
import com.google.common.collect.ImmutableMap;
@@ -182,7 +176,7 @@
for (Integer register : currentRegisters) {
if (!positionRegisters.contains(register)) {
events.add(dexItemFactory.createEndLocal(register));
- openLocals.put(register, null);
+ openLocals.remove(register);
}
}
for (Integer register : positionRegisters) {