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