Model: Use FIELD_ATTRIBUTE_HAS_DEFAULT to determine if a field has a default value
This commit is contained in:
@@ -18,7 +18,7 @@ namespace Il2CppInspector.Reflection {
|
|||||||
// Custom attributes for this member
|
// Custom attributes for this member
|
||||||
public override IEnumerable<CustomAttributeData> CustomAttributes => CustomAttributeData.GetCustomAttributes(this);
|
public override IEnumerable<CustomAttributeData> CustomAttributes => CustomAttributeData.GetCustomAttributes(this);
|
||||||
|
|
||||||
public bool HasDefaultValue { get; }
|
public bool HasDefaultValue => (Attributes & FieldAttributes.HasDefault) != 0;
|
||||||
public object DefaultValue { get; }
|
public object DefaultValue { get; }
|
||||||
|
|
||||||
public string DefaultValueString => HasDefaultValue ? DefaultValue.ToCSharpValue() : "";
|
public string DefaultValueString => HasDefaultValue ? DefaultValue.ToCSharpValue() : "";
|
||||||
@@ -105,12 +105,12 @@ namespace Il2CppInspector.Reflection {
|
|||||||
Attributes |= FieldAttributes.SpecialName;
|
Attributes |= FieldAttributes.SpecialName;
|
||||||
if ((fieldType.attrs & Il2CppConstants.FIELD_ATTRIBUTE_PINVOKE_IMPL) == Il2CppConstants.FIELD_ATTRIBUTE_PINVOKE_IMPL)
|
if ((fieldType.attrs & Il2CppConstants.FIELD_ATTRIBUTE_PINVOKE_IMPL) == Il2CppConstants.FIELD_ATTRIBUTE_PINVOKE_IMPL)
|
||||||
Attributes |= FieldAttributes.PinvokeImpl;
|
Attributes |= FieldAttributes.PinvokeImpl;
|
||||||
|
if ((fieldType.attrs & Il2CppConstants.FIELD_ATTRIBUTE_HAS_DEFAULT) != 0)
|
||||||
|
Attributes |= FieldAttributes.HasDefault;
|
||||||
|
|
||||||
// Default initialization value if present
|
// Default initialization value if present
|
||||||
if (pkg.FieldDefaultValue.TryGetValue(fieldIndex, out object variant)) {
|
if (pkg.FieldDefaultValue.TryGetValue(fieldIndex, out object variant))
|
||||||
HasDefaultValue = true;
|
|
||||||
DefaultValue = variant;
|
DefaultValue = variant;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user