append method

void append(
  1. Layer child
)

Adds the given layer to the end of this layer's child list.

Implementation

void append(Layer child) {
  assert(!_debugMutationsLocked);
  assert(child != this);
  assert(child != firstChild);
  assert(child != lastChild);
  assert(child.parent == null);
  assert(!child.attached);
  assert(child.nextSibling == null);
  assert(child.previousSibling == null);
  assert(child._parentHandle.layer == null);
  assert(() {
    Layer node = this;
    while (node.parent != null) {
      node = node.parent!;
    }
    assert(node != child); // indicates we are about to create a cycle
    return true;
  }());
  _adoptChild(child);
  child._previousSibling = lastChild;
  if (lastChild != null) {
    lastChild!._nextSibling = child;
  }
  _lastChild = child;
  _firstChild ??= child;
  child._parentHandle.layer = child;
  assert(child.attached == attached);
}