pascalabcnet/VisualPascalABCNETLinux/MonoDebugging/Debugger/LocalVariable.cs

80 lines
1.2 KiB
C#
Raw Normal View History

2023-04-18 18:53:21 +03:00
using System;
namespace Mono.Debugger.Soft
{
public class LocalVariable : Mirror {
MethodMirror method;
string name;
int index;
long type_id;
TypeMirror t;
bool is_arg;
int live_range_start, live_range_end;
internal LocalVariable (VirtualMachine vm, MethodMirror method, int index, long type_id, string name, int live_range_start, int live_range_end, bool is_arg) : base (vm, 0) {
this.method = method;
this.index = index;
this.name = name;
this.type_id = type_id;
this.is_arg = is_arg;
this.live_range_start = live_range_start;
this.live_range_end = live_range_end;
}
public string Name {
get {
return name;
}
}
public int Index {
get {
return index;
}
}
public TypeMirror Type {
get {
if (t == null)
t = vm.GetType (type_id);
return t;
}
}
public bool IsArg {
get {
return is_arg;
}
}
public MethodMirror Method {
get {
return method;
}
}
internal int LiveRangeStart {
get {
return live_range_start;
}
}
internal int LiveRangeEnd {
get {
return live_range_end;
}
}
internal int GetValueIndex {
get {
if (IsArg)
return (-Index) - 1;
else
return Index;
}
}
}
}