From 1fdc43699cb3aad0dd08ba2a0c7bd315da36a6c0 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sun, 31 Jul 2022 19:06:15 +0200 Subject: [PATCH] Fix rare exception in Visject after recent Surface context menu groups display refactor --- Source/Editor/Surface/AnimGraphSurface.cs | 4 ++-- Source/Editor/Surface/VisualScriptSurface.cs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/Editor/Surface/AnimGraphSurface.cs b/Source/Editor/Surface/AnimGraphSurface.cs index 06087eca0..be32871c1 100644 --- a/Source/Editor/Surface/AnimGraphSurface.cs +++ b/Source/Editor/Surface/AnimGraphSurface.cs @@ -115,7 +115,7 @@ namespace FlaxEditor.Surface // Check if context menu doesn't have the recent cached groups if (!contextMenu.Groups.Any(g => g.Archetypes[0].Tag is int asInt && asInt == _version)) { - var groups = contextMenu.Groups.Where(g => g.Archetypes[0].Tag is int).ToArray(); + var groups = contextMenu.Groups.Where(g => g.Archetypes.Count != 0 && g.Archetypes[0].Tag is int).ToArray(); foreach (var g in groups) contextMenu.RemoveGroup(g); foreach (var g in _cache.Values) @@ -125,7 +125,7 @@ namespace FlaxEditor.Surface else { // Remove any old groups from context menu - var groups = contextMenu.Groups.Where(g => g.Archetypes[0].Tag is int).ToArray(); + var groups = contextMenu.Groups.Where(g => g.Archetypes.Count != 0 && g.Archetypes[0].Tag is int).ToArray(); foreach (var g in groups) contextMenu.RemoveGroup(g); diff --git a/Source/Editor/Surface/VisualScriptSurface.cs b/Source/Editor/Surface/VisualScriptSurface.cs index ba4034ffb..1724be2ae 100644 --- a/Source/Editor/Surface/VisualScriptSurface.cs +++ b/Source/Editor/Surface/VisualScriptSurface.cs @@ -77,9 +77,9 @@ namespace FlaxEditor.Surface if (_cache.Count != 0) { // Check if context menu doesn't have the recent cached groups - if (!contextMenu.Groups.Any(g => g.Archetypes[0].Tag is int asInt && asInt == _version)) + if (!contextMenu.Groups.Any(g => g.Archetypes.Count != 0 && g.Archetypes[0].Tag is int asInt && asInt == _version)) { - var groups = contextMenu.Groups.Where(g => g.Archetypes[0].Tag is int).ToArray(); + var groups = contextMenu.Groups.Where(g => g.Archetypes.Count != 0 && g.Archetypes[0].Tag is int).ToArray(); foreach (var g in groups) contextMenu.RemoveGroup(g); foreach (var g in _cache.Values) @@ -89,7 +89,7 @@ namespace FlaxEditor.Surface else { // Remove any old groups from context menu - var groups = contextMenu.Groups.Where(g => g.Archetypes[0].Tag is int).ToArray(); + var groups = contextMenu.Groups.Where(g => g.Archetypes.Count != 0 && g.Archetypes[0].Tag is int).ToArray(); foreach (var g in groups) contextMenu.RemoveGroup(g);