public static int limitUtf8Length()

in gflog-core/src/main/java/com/epam/deltix/gflog/core/util/Util.java [249:278]


    public static int limitUtf8Length(final Buffer bytes, final int offset, final int length, final int limit) {
        if (length <= limit) {
            return length;
        }

        int result = limit;

        while (result > 0) {
            final int b = bytes.getByte(offset + result - 1);

            if (b >= 0) {
                break;
            }

            --result;

            if ((b & 0b11000000) == 0b11000000) {
                final int size = ((b & 0b11100000) == 0b11000000) ? 2 :
                        ((b & 0b11110000) == 0b11100000) ? 3 : 4;

                if (limit - result >= size) {
                    result = limit;
                }

                break;
            }
        }

        return result;
    }