processForLeaks method

void processForLeaks(
  1. int index
)

Implementation

void processForLeaks(int index) async {
  if (_weakReferenceList.isEmpty) return;
  if (_gcRunning) return;
  _gcRunning = true;

  List<int> keysToBeRemoved = [];
  Iterator<int> iterator = _weakReferenceList.keys.iterator;
  while (iterator.moveNext()) {
    int currentKey = iterator.current;
    if (currentKey > index) {
      break;
    }

    WeakReference weakReferenceItem = _weakReferenceList[currentKey]!;

    if (weakReferenceItem.target != null) {
      AppxiomcorepluginPlatform.instance.memoryLeakReported(
          weakReferenceItem.target.runtimeType.toString(),
          weakReferenceItem.target.toString());
    }
    keysToBeRemoved.add(currentKey);
  }

  for (var keyToBeRemoved in keysToBeRemoved) {
    _weakReferenceList.remove(keyToBeRemoved);
  }

  _gcRunning = false;
}