Roll default value into FieldInfo; report correctly when default is null

This commit is contained in:
Katy Coe
2017-11-08 00:45:16 +01:00
parent 52eea8395f
commit dc20e17898

View File

@@ -12,6 +12,10 @@ namespace Il2CppInspector.Reflection {
// IL2CPP-specific data
public Il2CppFieldDefinition Definition { get; }
public int Index { get; }
public bool HasDefaultValue { get; }
public object DefaultValue { get; }
public string DefaultValueString => !HasDefaultValue ? "" : (DefaultValue is string? $"\"{DefaultValue}\"" : (DefaultValue?.ToString() ?? "null"));
// Information/flags about the field
public FieldAttributes Attributes { get; }
@@ -62,8 +66,15 @@ namespace Il2CppInspector.Reflection {
Attributes |= FieldAttributes.Public;
if ((fieldType.attrs & DefineConstants.FIELD_ATTRIBUTE_STATIC) == DefineConstants.FIELD_ATTRIBUTE_STATIC)
Attributes |= FieldAttributes.Static;
if ((fieldType.attrs & DefineConstants.FIELD_ATTRIBUTE_INIT_ONLY) == DefineConstants.FIELD_ATTRIBUTE_INIT_ONLY)
if ((fieldType.attrs & DefineConstants.FIELD_ATTRIBUTE_INIT_ONLY) ==
DefineConstants.FIELD_ATTRIBUTE_INIT_ONLY)
Attributes |= FieldAttributes.InitOnly;
// Default initialization value if present
if (pkg.FieldDefaultValue.TryGetValue(fieldIndex, out object variant)) {
HasDefaultValue = true;
DefaultValue = variant;
}
}
}
}