net.sourceforge.plantuml.brotli.Utils Maven / Gradle / Ivy
Show all versions of plantuml-mit Show documentation
// THIS FILE HAS BEEN GENERATED BY A PREPROCESSOR.
package net.sourceforge.plantuml.brotli;
import java.io.IOException;
import java.io.InputStream;
/**
* A set of utility methods.
*/
final class Utils {
private static final byte[] BYTE_ZEROES = new byte[1024];
private static final int[] INT_ZEROES = new int[1024];
/**
* Fills byte array with zeroes.
*
*
* Current implementation uses {@link System#arraycopy}, so it should be used
* for length not less than 16.
*
* @param dest array to fill with zeroes
* @param start the first byte to fill
* @param end the last byte to fill
*/
static void fillBytesWithZeroes(byte[] dest, int start, int end) {
int cursor = start;
while (cursor < end) {
int step = Math.min(cursor + 1024, end) - cursor;
System.arraycopy(BYTE_ZEROES, 0, dest, cursor, step);
cursor += step;
}
}
/**
* Fills int array with zeroes.
*
*
* Current implementation uses {@link System#arraycopy}, so it should be used
* for length not less than 16.
*
* @param dest array to fill with zeroes
* @param start the first item to fill
* @param end the last item to fill
*/
static void fillIntsWithZeroes(int[] dest, int start, int end) {
int cursor = start;
while (cursor < end) {
int step = Math.min(cursor + 1024, end) - cursor;
System.arraycopy(INT_ZEROES, 0, dest, cursor, step);
cursor += step;
}
}
static void copyBytesWithin(byte[] bytes, int target, int start, int end) {
System.arraycopy(bytes, start, bytes, target, end - start);
}
static int readInput(InputStream src, byte[] dst, int offset, int length) {
try {
return src.read(dst, offset, length);
} catch (IOException e) {
throw new BrotliRuntimeException("Failed to read input", e);
}
}
static void closeInput(InputStream src) throws IOException {
src.close();
}
}