// <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>InterpMethodContextFrame</c> type.</summary>
partial class InterpMethodContextFrame : global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData
{
private static readonly string[] _typeNames = new[] { "InterpMethodContextFrame" };
[UsesDataDescriptorTypeSize]
public static uint GetSize(Target target)
=> checked((uint)LayoutSet.Resolve(target, _typeNames).InstanceSize);
[DataDescriptorDependency("StartIp", "pointer")]
public static int GetStartIpOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "StartIp");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("ParentPtr", "pointer")]
public static int GetParentPtrOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "ParentPtr");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("Ip", "pointer")]
public static int GetIpOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "Ip");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("NextPtr", "pointer")]
public static int GetNextPtrOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "NextPtr");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("Stack", "pointer")]
public static int GetStackOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "Stack");
return type.Fields[name].Offset;
}
public TargetPointer Address { get; }
private readonly Target _target;
private readonly LayoutSet _layouts;
partial void OnInit(Target target, TargetPointer address);
public InterpMethodContextFrame(Target target, TargetPointer address)
{
Address = address;
_target = target;
_layouts = LayoutSet.Resolve(target, _typeNames);
OnInit(target, address);
}
static InterpMethodContextFrame IData<InterpMethodContextFrame>.Create(Target target, TargetPointer address)
=> new InterpMethodContextFrame(target, address);
private TargetPointer _StartIp__value = default!;
private bool _StartIp__read;
[DataDescriptorDependency("StartIp", "pointer")]
public partial TargetPointer StartIp
{
get
{
if (!_StartIp__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "StartIp");
_StartIp__value = _target.ReadPointerField(b, t, n);
_StartIp__read = true;
}
return _StartIp__value;
}
}
private TargetPointer _ParentPtr__value = default!;
private bool _ParentPtr__read;
[DataDescriptorDependency("ParentPtr", "pointer")]
public partial TargetPointer ParentPtr
{
get
{
if (!_ParentPtr__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "ParentPtr");
_ParentPtr__value = _target.ReadPointerField(b, t, n);
_ParentPtr__read = true;
}
return _ParentPtr__value;
}
}
private TargetPointer _Ip__value = default!;
private bool _Ip__read;
[DataDescriptorDependency("Ip", "pointer")]
public partial TargetPointer Ip
{
get
{
if (!_Ip__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "Ip");
_Ip__value = _target.ReadPointerField(b, t, n);
_Ip__read = true;
}
return _Ip__value;
}
}
private TargetPointer _NextPtr__value = default!;
private bool _NextPtr__read;
[DataDescriptorDependency("NextPtr", "pointer")]
public partial TargetPointer NextPtr
{
get
{
if (!_NextPtr__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "NextPtr");
_NextPtr__value = _target.ReadPointerField(b, t, n);
_NextPtr__read = true;
}
return _NextPtr__value;
}
}
private TargetPointer _Stack__value = default!;
private bool _Stack__read;
[DataDescriptorDependency("Stack", "pointer")]
public partial TargetPointer Stack
{
get
{
if (!_Stack__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "Stack");
_Stack__value = _target.ReadPointerField(b, t, n);
_Stack__read = true;
}
return _Stack__value;
}
}
[DataDescriptorDependency("StartIp", "pointer")]
[DataDescriptorDependency("ParentPtr", "pointer")]
[DataDescriptorDependency("Ip", "pointer")]
[DataDescriptorDependency("NextPtr", "pointer")]
[DataDescriptorDependency("Stack", "pointer")]
void global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData.EnsureAllFieldsRead()
{
_ = StartIp;
_ = ParentPtr;
_ = Ip;
_ = NextPtr;
_ = Stack;
}
}