private int computeMatchLengthTable()

in java/src/main/java/com/epam/deltix/zstd/ZstdFrameDecompressor.java [581:606]


    private int computeMatchLengthTable(final int matchLengthType, final ByteBuffer inputBase, int input, final int inputLimit) {
        switch (matchLengthType) {
            case SET_RLE:
                verify(input < inputLimit, input, "Not enough input bytes");

                final byte value = inputBase.get(input++);
                verify(value <= MAX_MATCH_LENGTH_SYMBOL, input, "Value exceeds expected maximum value");

                FseTableReader.buildRleTable(matchLengthTable, value);
                currentMatchLengthTable = matchLengthTable;
                break;
            case SET_BASIC:
                currentMatchLengthTable = DEFAULT_MATCH_LENGTH_TABLE;
                break;
            case SET_REPEAT:
                verify(currentMatchLengthTable != null, input, "Expected match length table to be present");
                break;
            case SET_COMPRESSED:
                input += fse.readFseTable(matchLengthTable, inputBase, input, inputLimit, MAX_MATCH_LENGTH_SYMBOL, MATCH_LENGTH_FSE_LOG);
                currentMatchLengthTable = matchLengthTable;
                break;
            default:
                throw fail(input, "Invalid match length encoding type");
        }
        return input;
    }