private static void incrementalCopyFastPath(byte[] output, int srcIndex, int opIndex, int length) {
        int copiedLength = 0;
        while ((opIndex + copiedLength) - srcIndex < 8) {
            copyLong(output, srcIndex, output, opIndex + copiedLength);
            copiedLength += (opIndex + copiedLength) - srcIndex;
        }

        for (int i = 0; i < length - copiedLength; i += 8) {
            copyLong(output, srcIndex + i, output, opIndex + copiedLength + i);
        }
    }
Copy "len" bytes from "src" to "op", one byte at a time.  Used for
handling COPY operations where the input and output regions may
overlap.  For example, suppose:
src    == "ab"
op     == src + 2
len    == 20
<p>
After incrementalCopy, the result will have
eleven copies of "ab"
ababababababababababab
Note that this does not match the semantics of either memcpy()
or memmove().
codec/codec-api/src/main/java/com/alipay/sofa/rpc/codec/snappy/SnappyDecompressor.java