int tryReserveChildren(int n, int cnt, int byteOffset) {
        int offset = reserved;
        if (n > data.length - reserved) {
            final int maxSize = (totalSize - byteOffset) + cnt;
            if (n > maxSize - reserved) {
                return -1; // error; too much space requested
            }
            long[] old = data;
            data = new long[adjustSize(reserved + n, maxSize, cnt, byteOffset)];
            System.arraycopy(old, 0, data, 0, reserved);
        }
        reserved += n;
        return offset;
    }
Light-weight index structure describing the layout of a Slime value
encoded in binary format.
vespajlib/src/main/java/com/yahoo/slime/DecodeIndex.java