From dc20e17898e9b39205af7ce52080b0aa29ac6034 Mon Sep 17 00:00:00 2001 From: Katy Coe Date: Wed, 8 Nov 2017 00:45:16 +0100 Subject: [PATCH] Roll default value into FieldInfo; report correctly when default is null --- Il2CppInspector/Reflection/FieldInfo.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Il2CppInspector/Reflection/FieldInfo.cs b/Il2CppInspector/Reflection/FieldInfo.cs index 2acea05..7985494 100644 --- a/Il2CppInspector/Reflection/FieldInfo.cs +++ b/Il2CppInspector/Reflection/FieldInfo.cs @@ -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; + } } } } \ No newline at end of file