[CLSCompliant(false)]
public void Initialize(uint numElements, uint sizeOfEachElement)
{
- if (IntPtr.Size == 4 && numElements * sizeOfEachElement > uint.MaxValue)
+ try
+ {
+ _numBytes = checked((UIntPtr)((ulong)numElements * sizeOfEachElement));
+ }
+ catch (OverflowException)
+ {
throw new ArgumentOutOfRangeException("numBytes", SR.ArgumentOutOfRange_AddressSpace);
-
- if (numElements * sizeOfEachElement >= (ulong)Uninitialized)
- throw new ArgumentOutOfRangeException(nameof(numElements), SR.ArgumentOutOfRange_UIntPtrMax);
-
- _numBytes = checked((UIntPtr)(numElements * sizeOfEachElement));
+ }
}
/// <summary>