Exemplo n.º 1
0
 public ValueTypeFieldAddress(DebuggerRuntimeImpl runtime, AddressILValue objValue, DmdFieldInfo field)
     : base(runtime, field.FieldType)
 {
     Debug.Assert(field.ReflectedType.IsValueType);
     this.objValue = objValue;
     this.field    = field;
 }
Exemplo n.º 2
0
        internal ILValue LoadValueTypeFieldAddress(AddressILValue objValue, DmdFieldInfo field)
        {
            Debug.Assert(field.ReflectedType.IsValueType);
            var dnObjValue = TryGetDotNetValue(objValue, canCreateValue: false);

            if (dnObjValue != null)
            {
                var addrValue = runtime.LoadFieldAddress(evalInfo, dnObjValue, field);
                if (addrValue != null)
                {
                    Debug.Assert(addrValue.Type.IsByRef);
                    return(new ByRefILValueImpl(this, RecordValue(addrValue)));
                }
            }
            return(new ValueTypeFieldAddress(this, objValue, field));
        }
Exemplo n.º 3
0
 public override bool Equals(AddressILValue other) =>
 other is UnboxAddressILValue addr &&
Exemplo n.º 4
0
 public override bool Equals(AddressILValue other) =>
 other is PointerILValue addr &&
Exemplo n.º 5
0
 public override bool Equals(AddressILValue other) =>
 other is ByRefILValueImpl addr &&
Exemplo n.º 6
0
 public abstract bool Equals(AddressILValue other);
Exemplo n.º 7
0
 public override bool Equals(AddressILValue other) =>
 other is ArgumentAddress addr &&
Exemplo n.º 8
0
 public override bool Equals(AddressILValue other) =>
 other is LocalAddress addr &&
Exemplo n.º 9
0
 public override bool Equals(AddressILValue other) =>
 other is ValueTypeFieldAddress addr &&
Exemplo n.º 10
0
 public override bool Equals(AddressILValue other) =>
 other is StaticFieldAddress addr &&
Exemplo n.º 11
0
 internal ILValue LoadValueTypeFieldAddress(AddressILValue objValue, DmdFieldInfo field)
 {
     Debug.Assert(field.ReflectedType.IsValueType);
     return(new ValueTypeFieldAddress(this, objValue, field));
 }