writableSegment method

  1. @internal
Segment writableSegment(
  1. int minimumCapacity
)

Implementation

@internal
Segment writableSegment(int minimumCapacity) {
  checkArgument(minimumCapacity >= 1 && minimumCapacity <= kBlockSize,
      'unexpected capacity');

  if (head == null) {
    return head = Segment();
  }

  var tail = head!.prev;
  if (tail.limit + minimumCapacity > kBlockSize || !tail.owner) {
    // Append a new empty segment to fill up.
    tail = tail.push(Segment());
  }
  return tail;
}