diff options
author | kmb <kmb@google.com> | 2018-03-12 14:46:18 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-12 14:48:37 -0700 |
commit | 8e038b04e068285ba02b7934a7df25803802daff (patch) | |
tree | 8f31cd6da5b2307ddd033c9e9f611165834e0dd5 /src/tools/android/java/com/google/devtools/build/android | |
parent | cfa0bb7393c030682ee263586ea974f6f0b4bb5c (diff) |
Minor fixes to KeepScanner tool:
- use Guava to read zip entries
- Fix keep rules emitted for constructors
RELNOTES: None.
PiperOrigin-RevId: 188781547
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/desugar/scan/KeepScanner.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/scan/KeepScanner.java b/src/tools/android/java/com/google/devtools/build/android/desugar/scan/KeepScanner.java index 5892bf5df8..b347c7a659 100644 --- a/src/tools/android/java/com/google/devtools/build/android/desugar/scan/KeepScanner.java +++ b/src/tools/android/java/com/google/devtools/build/android/desugar/scan/KeepScanner.java @@ -15,11 +15,11 @@ package com.google.devtools.build.android.desugar.scan; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Preconditions.checkState; import static java.nio.file.StandardOpenOption.CREATE; import static java.util.Comparator.comparing; import com.google.common.collect.ImmutableSet; +import com.google.common.io.ByteStreams; import com.google.devtools.build.android.Converters.ExistingPathConverter; import com.google.devtools.build.android.Converters.PathConverter; import com.google.devtools.common.options.Option; @@ -140,18 +140,20 @@ class KeepScanner { private static byte[] readFully(ZipFile zip, ZipEntry entry) { byte[] result = new byte[(int) entry.getSize()]; try (InputStream content = zip.getInputStream(entry)) { - checkState(content.read(result) == result.length); - checkState(content.read() == -1); + ByteStreams.readFully(content, result); + return result; } catch (IOException e) { throw new IOError(e); } - return result; } private static CharSequence toKeepDescriptor(KeepReference member) { StringBuilder result = new StringBuilder(); if (member.isMethodReference()) { - result.append("*** ").append(member.name()).append("("); + if (!"<init>".equals(member.name())) { + result.append("*** "); + } + result.append(member.name()).append("("); // Ignore return type as it's unique in the source language boolean first = true; for (Type param : Type.getMethodType(member.desc()).getArgumentTypes()) { |