protected internal UnpooledHeapByteBuffer(IByteBufferAllocator alloc, int initialCapacity, int maxCapacity) : base(maxCapacity) { if (alloc is null) { ThrowHelper.ThrowArgumentNullException(ExceptionArgument.alloc); } if (initialCapacity > maxCapacity) { ThrowHelper.ThrowArgumentException_InitialCapacityMaxCapacity(initialCapacity, maxCapacity); } _allocator = alloc; SetArray(NewArray(initialCapacity)); SetIndex0(0, 0); }