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
@@ -35,11 +35,11 @@ namespace OpenRA.Mods.Common.Lint
|
||||
{
|
||||
foreach (var traitInfo in actorInfo.Value.TraitInfos<TraitInfo>())
|
||||
{
|
||||
var fields = traitInfo.GetType().GetFields();
|
||||
foreach (var field in fields.Where(x => x.HasAttribute<NotificationReferenceAttribute>()))
|
||||
var fields = Utility.GetFields(traitInfo.GetType());
|
||||
foreach (var field in fields.Where(x => Utility.HasAttribute<NotificationReferenceAttribute>(x)))
|
||||
{
|
||||
string type = null;
|
||||
var notificationReference = field.GetCustomAttributes<NotificationReferenceAttribute>(true).First();
|
||||
var notificationReference = Utility.GetCustomAttributes<NotificationReferenceAttribute>(field, true).First();
|
||||
if (!string.IsNullOrEmpty(notificationReference.NotificationTypeFieldName))
|
||||
{
|
||||
var fieldInfo = fields.First(f => f.Name == notificationReference.NotificationTypeFieldName);
|
||||
|
||||
Reference in New Issue
Block a user