callCollectGarbage method

void callCollectGarbage({
  1. CollectGarbage? collectGarbage,
  2. int? leadingGarbage,
  3. int? trailingGarbage,
  4. int? firstIndex,
  5. int? targetLastIndex,
})

call CollectGarbage if it's not null

Implementation

void callCollectGarbage({
  CollectGarbage? collectGarbage,
  int? leadingGarbage,
  int? trailingGarbage,
  int? firstIndex,
  int? targetLastIndex,
}) {
  if (collectGarbage == null) {
    return;
  }

  final List<int> garbages = <int>[];
  firstIndex ??= indexOf(firstChild!);
  targetLastIndex ??= indexOf(lastChild!);
  for (int i = leadingGarbage!; i > 0; i--) {
    garbages.add(firstIndex - i);
  }
  for (int i = 0; i < trailingGarbage!; i++) {
    garbages.add(targetLastIndex + i);
  }
  if (garbages.isNotEmpty) {
    //call collectGarbage
    collectGarbage.call(garbages);
  }
}