aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android
diff options
context:
space:
mode:
authorGravatar kmb <kmb@google.com>2018-03-12 14:46:18 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-12 14:48:37 -0700
commit8e038b04e068285ba02b7934a7df25803802daff (patch)
tree8f31cd6da5b2307ddd033c9e9f611165834e0dd5 /src/tools/android/java/com/google/devtools/build/android
parentcfa0bb7393c030682ee263586ea974f6f0b4bb5c (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.java12
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()) {