ByteData.view constructor Null safety

ByteData.view(
  1. ByteBuffer buffer,
  2. [int offsetInBytes = 0,
  3. int? length]
)

Creates an ByteData view of the specified region in buffer.

Changes in the ByteData will be visible in the byte buffer and vice versa. If the offsetInBytes index of the region is not specified, it defaults to zero (the first byte in the byte buffer). If the length is not provided, the view extends to the end of the byte buffer.

The offsetInBytes and length must be non-negative, and offsetInBytes + length must be less than or equal to the length of buffer.

Note that when creating a view from a TypedData list or byte data, that list or byte data may itself be a view on a larger buffer with a TypedData.offsetInBytes greater than zero. Merely doing ByteData.view(other.buffer, 0, count) may not point to the bytes you intended. Instead you may need to do:

ByteData.view(other.buffer, other.offsetInBytes, count)

Alternatively, use ByteData.sublistView which includes this computation:

ByteData.sublistView(other, 0, count);

(The third argument is an end index rather than a length, so if you start from a position greater than zero, you need not reduce the count correspondingly).

Implementation

factory ByteData.view(ByteBuffer buffer,
    [int offsetInBytes = 0, int? length]) {
  return buffer.asByteData(offsetInBytes, length);
}