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