addObserved method

void addObserved(
  1. Object obj, {
  2. String group = 'manual',
  3. int? expectedTotalCount,
  4. String? className,
})

Implementation

void addObserved(Object obj,
    {String group = 'manual', int? expectedTotalCount, String? className}) {
  if (_objHasAdded(group, obj) == true) return ;
  _savePolicy(obj, expectedTotalCount, className);

  if ((obj is num) ||
      (obj is bool) ||
      (obj is String) ||
      (obj is Struct) ||
      (obj is Pointer)) {
    throw ArgumentError.value(obj,
        'Expandos 不允许用于下类型: strings, numbers, booleans, null, Pointers, Structs or Unions.');
  }

  _leakController.postLeaksEvent(LeaksDoctorEvent(LeaksDoctorEventType.AddObject, data: group));

  String key = group;
  Expando? expando = _dynamicWatchGroup[key];
  expando ??= Expando('LeakDoctor-$key');
  expando[obj] = true;
  _dynamicWatchGroup[key] = expando;
}