public void Expand() { if (this.IsExpanded || !this.HasChildren) { return; } if (this.inverseReference) { using (List <HeapshotReader.BackReferenceInfo> .Enumerator enumerator = this.obj.inverseReferences.GetEnumerator()) { while (enumerator.MoveNext()) { HeapshotReader.BackReferenceInfo current = enumerator.Current; this.children.Add(new HeapshotWindow.HeapshotUIObject(current.fieldInfo.name, current.parentObject, true)); } } } else { using (List <HeapshotReader.ReferenceInfo> .Enumerator enumerator = this.obj.references.GetEnumerator()) { while (enumerator.MoveNext()) { HeapshotReader.ReferenceInfo current = enumerator.Current; this.children.Add(new HeapshotWindow.HeapshotUIObject(current.fieldInfo.name, current.referencedObject, false)); } } } }
private void ResolveInverseReferences() { foreach (KeyValuePair <uint, HeapshotReader.ObjectInfo> current in this.objects) { foreach (HeapshotReader.ReferenceInfo current2 in current.Value.references) { HeapshotReader.BackReferenceInfo backReferenceInfo = new HeapshotReader.BackReferenceInfo(); backReferenceInfo.parentObject = current.Value; backReferenceInfo.fieldInfo = current2.fieldInfo; current2.referencedObject.inverseReferences.Add(backReferenceInfo); } } }
private void ReadUnityObjects(BinaryReader reader) { uint key; while ((key = reader.ReadUInt32()) != 0u) { if (this.objects.ContainsKey(key)) { HeapshotReader.BackReferenceInfo backReferenceInfo = new HeapshotReader.BackReferenceInfo(); backReferenceInfo.parentObject = this.kUnity; backReferenceInfo.fieldInfo = new HeapshotReader.FieldInfo(this.objects[key].typeInfo.name); this.objects[key].inverseReferences.Add(backReferenceInfo); } } }
private void ResolveInverseReferences() { foreach (KeyValuePair<uint, HeapshotReader.ObjectInfo> current in this.objects) { foreach (HeapshotReader.ReferenceInfo current2 in current.Value.references) { HeapshotReader.BackReferenceInfo backReferenceInfo = new HeapshotReader.BackReferenceInfo(); backReferenceInfo.parentObject = current.Value; backReferenceInfo.fieldInfo = current2.fieldInfo; current2.referencedObject.inverseReferences.Add(backReferenceInfo); } } }