class CompressedLongArray {

    void ensureCapacity(int pos, int required, byte[] storage) {
        int targetLength = pos + required;
        if (targetLength < 0) {
            throw new IllegalArgumentException(formatWithLocale(
                "Encountered numeric overflow in internal buffer. Was at position %d and needed to grow by %d.",
                pos,
                required
            ));
        } else if (storage.length <= targetLength) {
            int newLength = ArrayUtil.oversize(targetLength, Byte.BYTES);
            tracker.remove(sizeOfByteArray(storage.length));
            tracker.add(sizeOfByteArray(newLength));
            this.storage = Arrays.copyOf(storage, newLength);
        }
    }

    public  CompressedLongArray(AllocationTracker tracker);
    public  CompressedLongArray(AllocationTracker tracker, int numberOfProperties);

}