Fix desugared library head
Change-Id: Ie4316e5951432889ef3bfe558bc374bb93dd24dd
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/specificationconversion/HumanToMachinePrefixConverter.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/specificationconversion/HumanToMachinePrefixConverter.java
index 520533b..a1a8d29 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/specificationconversion/HumanToMachinePrefixConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/specificationconversion/HumanToMachinePrefixConverter.java
@@ -91,7 +91,7 @@
(k, v) -> {
for (DexMethod dexMethod : v) {
if (dexMethod != null) {
- registerClassType(dexMethod.getHolderType());
+ registerType(dexMethod.getHolderType());
}
}
});
@@ -159,9 +159,13 @@
type.descriptor.withNewPrefix(prefix, k, appInfo.dexItemFactory());
DexString rewrittenTypeDescriptor =
type.descriptor.withNewPrefix(prefix, v, appInfo.dexItemFactory());
+ DexType newKey = appInfo.dexItemFactory().createType(typeDescriptor);
+ assert appInfo.definitionForWithoutExistenceAssert(newKey) == null
+ : "Trying to rewrite a type "
+ + newKey
+ + " with different prefix that already exists.";
builder.rewriteType(
- appInfo.dexItemFactory().createType(typeDescriptor),
- appInfo.dexItemFactory().createType(rewrittenTypeDescriptor));
+ newKey, appInfo.dexItemFactory().createType(rewrittenTypeDescriptor));
});
usedPrefix.add(prefix);
}
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdk11/DesugaredLibraryJDK11Undesugarer.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdk11/DesugaredLibraryJDK11Undesugarer.java
index 3309c38..da24386 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdk11/DesugaredLibraryJDK11Undesugarer.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdk11/DesugaredLibraryJDK11Undesugarer.java
@@ -79,6 +79,11 @@
if (!entry.getName().endsWith(".class")) {
return;
}
+ // TODO(b/244273080): Remove from the jar.
+ if (entry.getName().equals("sun/nio/fs/DefaultFileSystemProvider.class")
+ || entry.getName().equals("sun/nio/fs/DefaultFileTypeDetector.class")) {
+ return;
+ }
final byte[] bytes = StreamUtils.streamToByteArrayClose(input);
final byte[] rewrittenBytes =
transformInvoke(entry.getName().substring(0, entry.getName().length() - 6), bytes);
diff --git a/third_party/openjdk/desugar_jdk_libs_11.tar.gz.sha1 b/third_party/openjdk/desugar_jdk_libs_11.tar.gz.sha1
index 6d54f29..6925eca 100644
--- a/third_party/openjdk/desugar_jdk_libs_11.tar.gz.sha1
+++ b/third_party/openjdk/desugar_jdk_libs_11.tar.gz.sha1
@@ -1 +1 @@
-cbd86c3d046d227e71e8157742b3a1f2e4abcd8e
\ No newline at end of file
+b5f9ea4c2328d7654db2966acd6582f4c1f80081
\ No newline at end of file
diff --git a/tools/archive_desugar_jdk_libs.py b/tools/archive_desugar_jdk_libs.py
index 004450b..9ba7577 100755
--- a/tools/archive_desugar_jdk_libs.py
+++ b/tools/archive_desugar_jdk_libs.py
@@ -135,7 +135,7 @@
git_utils.GitClone(
'https://github.com/'
+ github_account + '/' + GITHUB_REPRO, checkout_dir)
- git_utils.GitCheckout('3a970cd008e944845a7b3d29a3b5a13123df11fe', checkout_dir)
+ git_utils.GitCheckout('b5f9ea4c2328d7654db2966acd6582f4c1f80081', checkout_dir)
def GetJavaEnv():
java_env = dict(os.environ, JAVA_HOME = jdk.GetJdk11Home())