private int computeLiteralsTable()

in java/src/main/java/com/epam/deltix/zstd/ZstdFrameDecompressor.java [635:660]


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

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

                FseTableReader.buildRleTable(literalsLengthTable, value);
                currentLiteralsLengthTable = literalsLengthTable;
                break;
            case SET_BASIC:
                currentLiteralsLengthTable = DEFAULT_LITERALS_LENGTH_TABLE;
                break;
            case SET_REPEAT:
                verify(currentLiteralsLengthTable != null, input, "Expected match length table to be present");
                break;
            case SET_COMPRESSED:
                input += fse.readFseTable(literalsLengthTable, inputBase, input, inputLimit, MAX_LITERALS_LENGTH_SYMBOL, LITERALS_LENGTH_FSE_LOG);
                currentLiteralsLengthTable = literalsLengthTable;
                break;
            default:
                throw fail(input, "Invalid literals length encoding type");
        }
        return input;
    }