private void decodeTail()

in java/src/main/java/com/epam/deltix/zstd/Huffman.java [278:304]


    private void decodeTail(final ByteBuffer inputBase, final int startAddress, int currentAddress,
                            int bitsConsumed, long bits, final ByteBuffer outputBase, int outputAddress, final int outputLimit) {
        final int tableLog = this.tableLog;
        final byte[] numbersOfBits = this.numbersOfBits;
        final byte[] symbols = this.symbols;

        // closer to the end
        while (outputAddress < outputLimit) {
            final BitStream.Loader loader = new BitStream.Loader(inputBase, startAddress, currentAddress, bits, bitsConsumed);
            final boolean done = loader.load();
            bitsConsumed = loader.getBitsConsumed();
            bits = loader.getBits();
            currentAddress = loader.getCurrentAddress();
            if (done) {
                break;
            }

            bitsConsumed = decodeSymbol(outputBase, outputAddress++, bits, bitsConsumed, tableLog, numbersOfBits, symbols);
        }

        // not more data in bit stream, so no need to reload
        while (outputAddress < outputLimit) {
            bitsConsumed = decodeSymbol(outputBase, outputAddress++, bits, bitsConsumed, tableLog, numbersOfBits, symbols);
        }

        verify(isEndOfStream(startAddress, currentAddress, bitsConsumed), startAddress, "Bit stream is not fully consumed");
    }