internal HeapDetails(ref HeapDetails other) { this = other; unchecked { if (IntPtr.Size == 4) { FixupPointer(ref Address); FixupPointer(ref Allocated); FixupPointer(ref MarkArray); FixupPointer(ref CAllocateLH); FixupPointer(ref NextSweepObj); FixupPointer(ref SavedSweepEphemeralSeg); FixupPointer(ref SavedSweepEphemeralStart); FixupPointer(ref BackgroundSavedHighestAddress); FixupPointer(ref BackgroundSavedLowestAddress); FixupPointer(ref EphemeralHeapSegment); FixupPointer(ref LowestAddress); FixupPointer(ref HighestAddress); FixupPointer(ref CardTable); for (int i = 0; i < FinalizationFillPointers.Length; i++) { FixupPointer(ref FinalizationFillPointers[i]); } for (int i = 0; i < GenerationTable.Length; i++) { GenerationTable[i] = new GenerationData(ref GenerationTable[i]); } } } }
internal GenerationData(ref GenerationData other) { this = other; if (IntPtr.Size == 4) { FixupPointer(ref StartSegment); FixupPointer(ref AllocationStart); FixupPointer(ref AllocationContextPointer); FixupPointer(ref AllocationContextLimit); } }