From 9f8faf4f17a082f18ace587ab3fcc4884cbdefa0 Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Mon, 22 Apr 2024 23:55:39 +0300 Subject: [PATCH] Clear references holding on to types in game assemblies --- Source/Editor/CustomEditors/CustomEditorPresenter.cs | 9 +++++++++ Source/Editor/CustomEditors/Dedicated/ScriptsEditor.cs | 1 + Source/Editor/CustomEditors/Editors/GenericEditor.cs | 8 ++++++++ Source/Editor/SceneGraph/SceneGraphNode.cs | 1 + Source/Engine/UI/GUI/Tooltip.cs | 1 + 5 files changed, 20 insertions(+) diff --git a/Source/Editor/CustomEditors/CustomEditorPresenter.cs b/Source/Editor/CustomEditors/CustomEditorPresenter.cs index 703c3f51b..270d71057 100644 --- a/Source/Editor/CustomEditors/CustomEditorPresenter.cs +++ b/Source/Editor/CustomEditors/CustomEditorPresenter.cs @@ -195,6 +195,15 @@ namespace FlaxEditor.CustomEditors Presenter.AfterLayout?.Invoke(layout); } + /// + protected override void Deinitialize() + { + Editor = null; + _overrideEditor = null; + + base.Deinitialize(); + } + /// protected override void OnModified() { diff --git a/Source/Editor/CustomEditors/Dedicated/ScriptsEditor.cs b/Source/Editor/CustomEditors/Dedicated/ScriptsEditor.cs index 583241915..b0239dc8f 100644 --- a/Source/Editor/CustomEditors/Dedicated/ScriptsEditor.cs +++ b/Source/Editor/CustomEditors/Dedicated/ScriptsEditor.cs @@ -1057,6 +1057,7 @@ namespace FlaxEditor.CustomEditors.Dedicated protected override void Deinitialize() { _scriptToggles = null; + _scripts.Clear(); base.Deinitialize(); } diff --git a/Source/Editor/CustomEditors/Editors/GenericEditor.cs b/Source/Editor/CustomEditors/Editors/GenericEditor.cs index bfcd8d046..6943f042d 100644 --- a/Source/Editor/CustomEditors/Editors/GenericEditor.cs +++ b/Source/Editor/CustomEditors/Editors/GenericEditor.cs @@ -819,6 +819,14 @@ namespace FlaxEditor.CustomEditors.Editors OnGroupsEnd(); } + protected override void Deinitialize() + { + _visibleIfCaches = null; + _visibleIfPropertiesListsCache = null; + + base.Deinitialize(); + } + /// public override void Refresh() { diff --git a/Source/Editor/SceneGraph/SceneGraphNode.cs b/Source/Editor/SceneGraph/SceneGraphNode.cs index 5becb69dc..37afc896e 100644 --- a/Source/Editor/SceneGraph/SceneGraphNode.cs +++ b/Source/Editor/SceneGraph/SceneGraphNode.cs @@ -469,6 +469,7 @@ namespace FlaxEditor.SceneGraph { ChildNodes[i].OnDispose(); } + ChildNodes.Clear(); SceneGraphFactory.Nodes.Remove(ID); } diff --git a/Source/Engine/UI/GUI/Tooltip.cs b/Source/Engine/UI/GUI/Tooltip.cs index 40aae0067..8c8e05b43 100644 --- a/Source/Engine/UI/GUI/Tooltip.cs +++ b/Source/Engine/UI/GUI/Tooltip.cs @@ -120,6 +120,7 @@ namespace FlaxEngine.GUI // Unlink IsLayoutLocked = true; Parent = null; + _showTarget = null; // Close window if (_window)