Cache reflection calls when running utility lints and commands.
Reduces runtime of --check-yaml command to 70% of original.
This commit is contained in:
committed by
Matthias Mailänder
parent
1a2aafa17c
commit
9dd4f938da
@@ -39,16 +39,16 @@ namespace OpenRA.Mods.Common.Lint
|
||||
void CheckTrait(Action<string> emitError, ActorInfo actorInfo, TraitInfo traitInfo, Ruleset rules)
|
||||
{
|
||||
var actualType = traitInfo.GetType();
|
||||
foreach (var field in actualType.GetFields())
|
||||
foreach (var field in Utility.GetFields(actualType))
|
||||
{
|
||||
if (field.HasAttribute<ActorReferenceAttribute>())
|
||||
if (Utility.HasAttribute<ActorReferenceAttribute>(field))
|
||||
CheckActorReference(emitError, actorInfo, traitInfo, field, rules.Actors,
|
||||
field.GetCustomAttributes<ActorReferenceAttribute>(true)[0]);
|
||||
Utility.GetCustomAttributes<ActorReferenceAttribute>(field, true)[0]);
|
||||
|
||||
if (field.HasAttribute<WeaponReferenceAttribute>())
|
||||
if (Utility.HasAttribute<WeaponReferenceAttribute>(field))
|
||||
CheckWeaponReference(emitError, actorInfo, traitInfo, field, rules.Weapons);
|
||||
|
||||
if (field.HasAttribute<VoiceSetReferenceAttribute>())
|
||||
if (Utility.HasAttribute<VoiceSetReferenceAttribute>(field))
|
||||
CheckVoiceReference(emitError, actorInfo, traitInfo, field, rules.Voices);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user