Uint16List.view constructor

Uint16List.view(ByteBuffer buffer, [ int offsetInBytes = 0 int length ])

Creates a Uint16List view of the specified region in the specified byte buffer.

Changes in the Uint16List 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 specified, it defaults to null, which indicates that the view extends to the end of the byte buffer.

Throws RangeError if offsetInBytes or length are negative, or if offsetInBytes + (length * elementSizeInBytes) is greater than the length of buffer.

Throws ArgumentError if offsetInBytes is not a multiple of bytesPerElement.

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 Uint16List.view(other.buffer, 0, count) may not point to the bytes you intended. Instead you may need to do:

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

Alternatively, use Uint16List.sublistView which includes this computation.

Uint16List.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 Uint16List.view(ByteBuffer buffer,
    [int offsetInBytes = 0, int length]) {
  return buffer.asUint16List(offsetInBytes, length);
}