Version 1.3.38
Merge: Fix mapping from original to renamed field/method signature
CL: https://r8-review.googlesource.com/c/r8/+/31000
Merge: Account for relative paths with no parent
CL: https://r8-review.googlesource.com/c/r8/+/30886
Bug: 119662037
Change-Id: I17a054233982e2d54608d9f4549962cc73219133
diff --git a/src/main/java/com/android/tools/r8/StringConsumer.java b/src/main/java/com/android/tools/r8/StringConsumer.java
index 1920d6d..d8f7d39 100644
--- a/src/main/java/com/android/tools/r8/StringConsumer.java
+++ b/src/main/java/com/android/tools/r8/StringConsumer.java
@@ -7,7 +7,6 @@
import com.android.tools.r8.origin.PathOrigin;
import com.android.tools.r8.utils.ExceptionDiagnostic;
import java.io.BufferedWriter;
-import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
@@ -102,9 +101,9 @@
public void accept(String string, DiagnosticsHandler handler) {
super.accept(string, handler);
try {
- File parent = outputPath.getParent().toFile();
- if (!parent.exists()) {
- parent.mkdirs();
+ Path parent = outputPath.getParent();
+ if (parent != null && !parent.toFile().exists()) {
+ Files.createDirectories(parent);
}
Files.write(outputPath, string.getBytes(encoding));
} catch (IOException e) {
diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java
index 959fa7c..3393210 100644
--- a/src/main/java/com/android/tools/r8/Version.java
+++ b/src/main/java/com/android/tools/r8/Version.java
@@ -11,7 +11,7 @@
// This field is accessed from release scripts using simple pattern matching.
// Therefore, changing this field could break our release scripts.
- public static final String LABEL = "1.3.37";
+ public static final String LABEL = "1.3.38";
private Version() {
}
diff --git a/src/main/java/com/android/tools/r8/graph/GraphLense.java b/src/main/java/com/android/tools/r8/graph/GraphLense.java
index 55c58c6ca..3cdd15d 100644
--- a/src/main/java/com/android/tools/r8/graph/GraphLense.java
+++ b/src/main/java/com/android/tools/r8/graph/GraphLense.java
@@ -360,20 +360,18 @@
@Override
public DexField getRenamedFieldSignature(DexField originalField) {
- DexField renamedField =
- originalFieldSignatures != null
- ? originalFieldSignatures.inverse().getOrDefault(originalField, originalField)
- : originalField;
- return previousLense.getRenamedFieldSignature(renamedField);
+ DexField renamedField = previousLense.getRenamedFieldSignature(originalField);
+ return originalFieldSignatures != null
+ ? originalFieldSignatures.inverse().getOrDefault(renamedField, renamedField)
+ : renamedField;
}
@Override
public DexMethod getRenamedMethodSignature(DexMethod originalMethod) {
- DexMethod renamedMethod =
- originalMethodSignatures != null
- ? originalMethodSignatures.inverse().getOrDefault(originalMethod, originalMethod)
- : originalMethod;
- return previousLense.getRenamedMethodSignature(renamedMethod);
+ DexMethod renamedMethod = previousLense.getRenamedMethodSignature(originalMethod);
+ return originalMethodSignatures != null
+ ? originalMethodSignatures.inverse().getOrDefault(renamedMethod, renamedMethod)
+ : renamedMethod;
}
@Override
diff --git a/src/test/java/com/android/tools/r8/utils/GenerateMainDexListCommandTest.java b/src/test/java/com/android/tools/r8/utils/GenerateMainDexListCommandTest.java
index c80b72e..6b4be93 100644
--- a/src/test/java/com/android/tools/r8/utils/GenerateMainDexListCommandTest.java
+++ b/src/test/java/com/android/tools/r8/utils/GenerateMainDexListCommandTest.java
@@ -15,6 +15,7 @@
import com.android.tools.r8.GenerateMainDexListCommand;
import com.android.tools.r8.StringConsumer;
import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.ToolHelper.ProcessResult;
import com.android.tools.r8.origin.Origin;
import com.google.common.collect.ImmutableList;
import java.io.IOException;
@@ -95,8 +96,10 @@
addAndroidJarsToCommandLine(args);
addInputJarsToCommandLine(args);
addMainDexRuleToCommandLine(args);
- assertEquals(0, ToolHelper.forkGenerateMainDexList(
- working, args, "--main-dex-list-output", mainDexListOutput).exitCode);
+ ProcessResult result =
+ ToolHelper.forkGenerateMainDexList(
+ working, args, "--main-dex-list-output", mainDexListOutput);
+ assertEquals(result.stderr, 0, result.exitCode);
assertTrue(Files.exists(output));
assertTrue(Files.size(output) > 0);
}