From 9edda21b068c524a9563852e829c46a9ade17a9c Mon Sep 17 00:00:00 2001 From: Vapre Date: Mon, 6 Jul 2020 12:55:19 +0200 Subject: [PATCH] Avoid three time array lookup in TraitContainer.Actors. --- OpenRA.Game/TraitDictionary.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/OpenRA.Game/TraitDictionary.cs b/OpenRA.Game/TraitDictionary.cs index f2b654c61b..d3da70e7d2 100644 --- a/OpenRA.Game/TraitDictionary.cs +++ b/OpenRA.Game/TraitDictionary.cs @@ -213,10 +213,11 @@ namespace OpenRA Actor last = null; for (var i = 0; i < actors.Count; i++) { - if (actors[i] == last) + var current = actors[i]; + if (current == last) continue; - yield return actors[i]; - last = actors[i]; + yield return current; + last = current; } } @@ -227,10 +228,12 @@ namespace OpenRA for (var i = 0; i < actors.Count; i++) { - if (actors[i] == last || !predicate(traits[i])) - continue; - yield return actors[i]; last = actors[i]; + var current = actors[i]; + if (current == last || !predicate(traits[i])) + continue; + yield return current; + last = current; } }