Beispiel #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;
 }
Beispiel #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));
        }
Beispiel #3
0
 public override bool Equals(AddressILValue other) =>
 other is UnboxAddressILValue addr &&
Beispiel #4
0
 public override bool Equals(AddressILValue other) =>
 other is PointerILValue addr &&
Beispiel #5
0
 public override bool Equals(AddressILValue other) =>
 other is ByRefILValueImpl addr &&
Beispiel #6
0
 public abstract bool Equals(AddressILValue other);
Beispiel #7
0
 public override bool Equals(AddressILValue other) =>
 other is ArgumentAddress addr &&
Beispiel #8
0
 public override bool Equals(AddressILValue other) =>
 other is LocalAddress addr &&
Beispiel #9
0
 public override bool Equals(AddressILValue other) =>
 other is ValueTypeFieldAddress addr &&
Beispiel #10
0
 public override bool Equals(AddressILValue other) =>
 other is StaticFieldAddress addr &&
Beispiel #11
0
 internal ILValue LoadValueTypeFieldAddress(AddressILValue objValue, DmdFieldInfo field)
 {
     Debug.Assert(field.ReflectedType.IsValueType);
     return(new ValueTypeFieldAddress(this, objValue, field));
 }