Skip to content

Commit 7d287a2

Browse files
committed
[fix] fix the bug in MissingMetadataChecker where it did not check for missing fields.
1 parent f19ba3e commit 7d287a2

1 file changed

Lines changed: 14 additions & 9 deletions

File tree

Editor/HotUpdate/MissingMetadataChecker.cs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,31 +61,36 @@ public bool Check(string hotUpdateDllPath)
6161
}
6262
}
6363

64-
foreach (IMethodDefOrRef methodRef in mod.GetMemberRefs())
64+
foreach (IMethodDefOrRef memberRef in mod.GetMemberRefs())
6565
{
66-
if (methodRef.DeclaringType.DefinitionAssembly == null)
66+
if (memberRef.DeclaringType.DefinitionAssembly == null)
6767
{
6868
continue;
6969
}
70-
string defAssName = methodRef.DeclaringType.DefinitionAssembly.Name;
70+
string defAssName = memberRef.DeclaringType.DefinitionAssembly.Name;
7171
if (!_aotAssNames.Contains(defAssName))
7272
{
7373
continue;
7474
}
75-
if (methodRef.IsField)
75+
if (memberRef.IsField)
7676
{
77-
77+
IField field = (IField)memberRef;
78+
if (field.ResolveFieldDef() == null)
79+
{
80+
UnityEngine.Debug.LogError($"Missing Field: {memberRef.FullName}");
81+
anyMissing = true;
82+
}
7883
}
79-
else if (methodRef.IsMethod)
84+
else if (memberRef.IsMethod)
8085
{
81-
TypeSig declaringTypeSig = methodRef.DeclaringType.ToTypeSig();
82-
if (methodRef.ResolveMethodDef() == null)
86+
TypeSig declaringTypeSig = memberRef.DeclaringType.ToTypeSig();
87+
if (memberRef.ResolveMethodDef() == null)
8388
{
8489
if (declaringTypeSig.ElementType == ElementType.Array || declaringTypeSig.ElementType == ElementType.SZArray)
8590
{
8691
continue;
8792
}
88-
UnityEngine.Debug.LogError($"Missing Method: {methodRef.FullName}");
93+
UnityEngine.Debug.LogError($"Missing Method: {memberRef.FullName}");
8994
anyMissing = true;
9095
}
9196
}

0 commit comments

Comments
 (0)