Example #1
0
 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));
             }
         }
     }
 }
Example #2
0
 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);
         }
     }
 }
Example #3
0
        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);
				}
			}
		}
		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);
				}
			}
		}