// <auto-generated/>
#nullable enable
using Microsoft.Diagnostics.DataContractReader;
using Microsoft.Diagnostics.DataContractReader.Contracts;
using Microsoft.Diagnostics.DataContractReader.Generated;
namespace Microsoft.Diagnostics.DataContractReader.Data;
/// <summary>Wraps the <c>CodeHeapListNode</c> type.</summary>
partial class CodeHeapListNode : global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData
{
private static readonly string[] _typeNames = new[] { "CodeHeapListNode" };
[UsesDataDescriptorTypeSize]
public static uint GetSize(Target target)
=> checked((uint)LayoutSet.Resolve(target, _typeNames).InstanceSize);
[DataDescriptorDependency("Next", "pointer")]
public static int GetNextOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "Next");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("StartAddress", "pointer")]
public static int GetStartAddressOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "StartAddress");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("EndAddress", "pointer")]
public static int GetEndAddressOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "EndAddress");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("MapBase", "pointer")]
public static int GetMapBaseOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "MapBase");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("HeaderMap", "pointer")]
public static int GetHeaderMapOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "HeaderMap");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("Heap", "pointer")]
public static int GetHeapOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "Heap");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("CLRPersonalityRoutine", "pointer")]
public static int GetCLRPersonalityRoutineOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "CLRPersonalityRoutine");
return type.Fields[name].Offset;
}
public TargetPointer Address { get; }
private readonly Target _target;
private readonly LayoutSet _layouts;
public CodeHeapListNode(Target target, TargetPointer address)
{
Address = address;
_target = target;
_layouts = LayoutSet.Resolve(target, _typeNames);
}
static CodeHeapListNode IData<CodeHeapListNode>.Create(Target target, TargetPointer address)
=> new CodeHeapListNode(target, address);
private TargetPointer _Next__value = default!;
private bool _Next__read;
[DataDescriptorDependency("Next", "pointer")]
public partial TargetPointer Next
{
get
{
if (!_Next__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "Next");
_Next__value = _target.ReadPointerField(b, t, n);
_Next__read = true;
}
return _Next__value;
}
}
private TargetPointer _StartAddress__value = default!;
private bool _StartAddress__read;
[DataDescriptorDependency("StartAddress", "pointer")]
public partial TargetPointer StartAddress
{
get
{
if (!_StartAddress__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "StartAddress");
_StartAddress__value = _target.ReadPointerField(b, t, n);
_StartAddress__read = true;
}
return _StartAddress__value;
}
}
private TargetPointer _EndAddress__value = default!;
private bool _EndAddress__read;
[DataDescriptorDependency("EndAddress", "pointer")]
public partial TargetPointer EndAddress
{
get
{
if (!_EndAddress__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "EndAddress");
_EndAddress__value = _target.ReadPointerField(b, t, n);
_EndAddress__read = true;
}
return _EndAddress__value;
}
}
private TargetPointer _MapBase__value = default!;
private bool _MapBase__read;
[DataDescriptorDependency("MapBase", "pointer")]
public partial TargetPointer MapBase
{
get
{
if (!_MapBase__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "MapBase");
_MapBase__value = _target.ReadPointerField(b, t, n);
_MapBase__read = true;
}
return _MapBase__value;
}
}
private TargetPointer _HeaderMap__value = default!;
private bool _HeaderMap__read;
[DataDescriptorDependency("HeaderMap", "pointer")]
public partial TargetPointer HeaderMap
{
get
{
if (!_HeaderMap__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "HeaderMap");
_HeaderMap__value = _target.ReadPointerField(b, t, n);
_HeaderMap__read = true;
}
return _HeaderMap__value;
}
}
private TargetPointer _Heap__value = default!;
private bool _Heap__read;
[DataDescriptorDependency("Heap", "pointer")]
public partial TargetPointer Heap
{
get
{
if (!_Heap__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "Heap");
_Heap__value = _target.ReadPointerField(b, t, n);
_Heap__read = true;
}
return _Heap__value;
}
}
private TargetPointer? _CLRPersonalityRoutine__value = default!;
private bool _CLRPersonalityRoutine__read;
[DataDescriptorDependency("CLRPersonalityRoutine", "pointer")]
public partial TargetPointer? CLRPersonalityRoutine
{
get
{
if (!_CLRPersonalityRoutine__read)
{
if (_layouts.TrySelect(Address, out var t, out var b, out var n, "CLRPersonalityRoutine"))
_CLRPersonalityRoutine__value = _target.ReadPointerField(b, t, n);
else
_CLRPersonalityRoutine__value = default(TargetPointer?);
_CLRPersonalityRoutine__read = true;
}
return _CLRPersonalityRoutine__value;
}
}
[DataDescriptorDependency("Next", "pointer")]
[DataDescriptorDependency("StartAddress", "pointer")]
[DataDescriptorDependency("EndAddress", "pointer")]
[DataDescriptorDependency("MapBase", "pointer")]
[DataDescriptorDependency("HeaderMap", "pointer")]
[DataDescriptorDependency("Heap", "pointer")]
[DataDescriptorDependency("CLRPersonalityRoutine", "pointer")]
void global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData.EnsureAllFieldsRead()
{
_ = Next;
_ = StartAddress;
_ = EndAddress;
_ = MapBase;
_ = HeaderMap;
_ = Heap;
_ = CLRPersonalityRoutine;
}
}