From 139a43161404c4bf6b2f5e636ea8265ba8ed8170 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Tue, 10 Dec 2024 17:01:41 +0100 Subject: [PATCH] Fix crash due to alive reference to old asset validator #3081 --- Source/Editor/Content/AssetPickerValidator.cs | 1 - .../Editor/CustomEditors/Editors/AssetRefEditor.cs | 12 ++++++++++++ .../Editor/CustomEditors/Editors/CollectionEditor.cs | 4 ++++ Source/Editor/GUI/AssetPicker.cs | 2 +- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Source/Editor/Content/AssetPickerValidator.cs b/Source/Editor/Content/AssetPickerValidator.cs index 109ea2f79..349d43cf4 100644 --- a/Source/Editor/Content/AssetPickerValidator.cs +++ b/Source/Editor/Content/AssetPickerValidator.cs @@ -1,7 +1,6 @@ // Copyright (c) 2012-2024 Wojciech Figat. All rights reserved. using System; -using System.IO; using FlaxEditor.Scripting; using FlaxEngine; using FlaxEngine.Utilities; diff --git a/Source/Editor/CustomEditors/Editors/AssetRefEditor.cs b/Source/Editor/CustomEditors/Editors/AssetRefEditor.cs index 76f0e12cd..83fa1f129 100644 --- a/Source/Editor/CustomEditors/Editors/AssetRefEditor.cs +++ b/Source/Editor/CustomEditors/Editors/AssetRefEditor.cs @@ -292,5 +292,17 @@ namespace FlaxEditor.CustomEditors.Editors _isRefreshing = false; } } + + /// + protected override void Deinitialize() + { + if (_validator != null) + { + _validator.OnDestroy(); + _validator = null; + } + + base.Deinitialize(); + } } } diff --git a/Source/Editor/CustomEditors/Editors/CollectionEditor.cs b/Source/Editor/CustomEditors/Editors/CollectionEditor.cs index 1f06b2704..5497d085f 100644 --- a/Source/Editor/CustomEditors/Editors/CollectionEditor.cs +++ b/Source/Editor/CustomEditors/Editors/CollectionEditor.cs @@ -898,9 +898,13 @@ namespace FlaxEditor.CustomEditors.Editors base.Draw(); } + /// public override void OnDestroy() { _pickerValidator.OnDestroy(); + _pickerValidator = null; + + base.OnDestroy(); } private bool ValidateActors(ActorNode node) diff --git a/Source/Editor/GUI/AssetPicker.cs b/Source/Editor/GUI/AssetPicker.cs index c1ef7c362..7aca96c4e 100644 --- a/Source/Editor/GUI/AssetPicker.cs +++ b/Source/Editor/GUI/AssetPicker.cs @@ -59,7 +59,7 @@ namespace FlaxEditor.GUI /// /// Initializes a new instance of the class. /// - /// The assets types that this picker accepts. + /// The asset types that this picker accepts. /// The control location. public AssetPicker(ScriptType assetType, Float2 location) : base(location, new Float2(DefaultIconSize + ButtonsOffset + ButtonsSize, DefaultIconSize))