/* initialize from the backing store */ internal TreeNode([NotNull] BitReader reader) { nodetype = (NodeType)reader.ReadBits(2); stackid = (int)Helpers.ReadNumber(reader); if (nodetype == NodeType.AssemblyLoad) { nameId = (int)Helpers.ReadNumber(reader); } kidOffset = Helpers.ReadNumber(reader) - 1; prevOffset = Helpers.ReadNumber(reader) - 1; nodeOffset = Helpers.ReadNumber(reader); data = new Statistics(reader); }
/* read the contents to the backing store */ internal void Read(BitReader br) { bytesAllocated = Helpers.ReadNumber(br); bytesAllocatedByKids = Helpers.ReadNumber(br); numberOfObjectsAllocated = Helpers.ReadNumber(br); numberOfObjectsAllocatedByKids = Helpers.ReadNumber(br); numberOfFunctionsCalled = Helpers.ReadNumber(br); numberOfFunctionsCalledByKids = Helpers.ReadNumber(br); numberOfNewFunctionsBroughtIn = Helpers.ReadNumber(br); numberOfUnmanagedTransitions = Helpers.ReadNumber(br); numberOfUnmanagedTransitionsByKids = Helpers.ReadNumber(br); numberOfAssembliesLoaded = Helpers.ReadNumber(br); numberOfAssembliesLoadedByKids = Helpers.ReadNumber(br); firstTimeBroughtIn = (br.ReadBits(1) != 0); }
static internal long ReadNumber(BitReader br) { ulong tmp; int quadsToRead = 0; tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 0; } else { tmp = br.ReadBits(2); if (tmp == 0) { tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 1; } else { quadsToRead = 9; } } else if (tmp == 1) { quadsToRead = 8; } else if (tmp == 2) { quadsToRead = 5; } else { tmp = br.ReadBits(2); if (tmp == 0) { quadsToRead = 2; } else if (tmp == 1) { quadsToRead = 4; } else if (tmp == 2) { tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 7; } else if (tmp == 1) { tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 3; } else { tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 11; } else { tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 6; } else { tmp = br.ReadBits(2); if (tmp == 0) { tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 16; } else { quadsToRead = 15; } } else if (tmp == 1) { quadsToRead = 14; } else if (tmp == 2) { quadsToRead = 13; } else { quadsToRead = 12; } } } } } } else { quadsToRead = 10; } } } return((long)br.ReadBits(4 * quadsToRead)); }