< prev index next >

src/java.base/share/classes/jdk/internal/jimage/decompressor/StringSharingDecompressor.java

Print this page
rev 51919 : 8215281: Use String.isEmpty() when applicable in java.base
Reviewed-by: dfuchs, alanb


 151     }
 152 
 153     private static String reconstruct(StringsProvider reader, DataInputStream cr)
 154             throws IOException {
 155         int descIndex = CompressIndexes.readInt(cr);
 156         String desc = reader.getString(descIndex);
 157         byte[] encodedDesc = getEncoded(desc);
 158         int indexes_length = CompressIndexes.readInt(cr);
 159         byte[] bytes = new byte[indexes_length];
 160         cr.readFully(bytes);
 161         List<Integer> indices = CompressIndexes.decompressFlow(bytes);
 162         ByteBuffer buffer = ByteBuffer.allocate(encodedDesc.length * 2);
 163         buffer.order(ByteOrder.BIG_ENDIAN);
 164         int argIndex = 0;
 165         for (byte c : encodedDesc) {
 166             if (c == 'L') {
 167                 buffer = safeAdd(buffer, c);
 168                 int index = indices.get(argIndex);
 169                 argIndex += 1;
 170                 String pkg = reader.getString(index);
 171                 if (pkg.length() > 0) {
 172                     pkg = pkg + "/";
 173                     byte[] encoded = getEncoded(pkg);
 174                     buffer = safeAdd(buffer, encoded);
 175                 }
 176                 int classIndex = indices.get(argIndex);
 177                 argIndex += 1;
 178                 String clazz = reader.getString(classIndex);
 179                 byte[] encoded = getEncoded(clazz);
 180                 buffer = safeAdd(buffer, encoded);
 181             } else {
 182                 buffer = safeAdd(buffer, c);
 183             }
 184         }
 185 
 186         byte[] encoded = buffer.array();
 187         ByteBuffer result = ByteBuffer.allocate(encoded.length + 2);
 188         result.order(ByteOrder.BIG_ENDIAN);
 189         result.putShort((short) buffer.position());
 190         result.put(encoded, 0, buffer.position());
 191         ByteArrayInputStream stream = new ByteArrayInputStream(result.array());




 151     }
 152 
 153     private static String reconstruct(StringsProvider reader, DataInputStream cr)
 154             throws IOException {
 155         int descIndex = CompressIndexes.readInt(cr);
 156         String desc = reader.getString(descIndex);
 157         byte[] encodedDesc = getEncoded(desc);
 158         int indexes_length = CompressIndexes.readInt(cr);
 159         byte[] bytes = new byte[indexes_length];
 160         cr.readFully(bytes);
 161         List<Integer> indices = CompressIndexes.decompressFlow(bytes);
 162         ByteBuffer buffer = ByteBuffer.allocate(encodedDesc.length * 2);
 163         buffer.order(ByteOrder.BIG_ENDIAN);
 164         int argIndex = 0;
 165         for (byte c : encodedDesc) {
 166             if (c == 'L') {
 167                 buffer = safeAdd(buffer, c);
 168                 int index = indices.get(argIndex);
 169                 argIndex += 1;
 170                 String pkg = reader.getString(index);
 171                 if (!pkg.isEmpty()) {
 172                     pkg = pkg + "/";
 173                     byte[] encoded = getEncoded(pkg);
 174                     buffer = safeAdd(buffer, encoded);
 175                 }
 176                 int classIndex = indices.get(argIndex);
 177                 argIndex += 1;
 178                 String clazz = reader.getString(classIndex);
 179                 byte[] encoded = getEncoded(clazz);
 180                 buffer = safeAdd(buffer, encoded);
 181             } else {
 182                 buffer = safeAdd(buffer, c);
 183             }
 184         }
 185 
 186         byte[] encoded = buffer.array();
 187         ByteBuffer result = ByteBuffer.allocate(encoded.length + 2);
 188         result.order(ByteOrder.BIG_ENDIAN);
 189         result.putShort((short) buffer.position());
 190         result.put(encoded, 0, buffer.position());
 191         ByteArrayInputStream stream = new ByteArrayInputStream(result.array());


< prev index next >