Fix some dispose issues

This commit is contained in:
Zeffuro
2026-01-19 00:03:42 +01:00
parent f576af797e
commit f074ca446f
2 changed files with 18 additions and 6 deletions
@@ -154,11 +154,10 @@ public class AddonCategoryConfigurationWindow : NativeAddon
protected override unsafe void OnFinalize(AtkUnitBase* addon) protected override unsafe void OnFinalize(AtkUnitBase* addon)
{ {
_selectionListNode?.Dispose();
_selectionListNode = null; _selectionListNode = null;
_configNode?.Dispose();
_configNode = null; _configNode = null;
_separatorLine = null;
_nothingSelectedTextNode = null;
base.OnFinalize(addon); base.OnFinalize(addon);
} }
} }
@@ -7,7 +7,6 @@ namespace AetherBags.Nodes.Configuration.Category;
public sealed class CategoryScrollingAreaNode : ScrollingListNode public sealed class CategoryScrollingAreaNode : ScrollingListNode
{ {
private AddonCategoryConfigurationWindow? _categoryConfigurationAddon; private AddonCategoryConfigurationWindow? _categoryConfigurationAddon;
private readonly TextButtonNode _categoryConfigurationButtonNode;
public CategoryScrollingAreaNode() public CategoryScrollingAreaNode()
{ {
@@ -15,13 +14,13 @@ public sealed class CategoryScrollingAreaNode : ScrollingListNode
AddNode(new CategoryGeneralConfigurationNode()); AddNode(new CategoryGeneralConfigurationNode());
_categoryConfigurationButtonNode = new TextButtonNode var categoryConfigurationButtonNode = new TextButtonNode
{ {
Size = new Vector2(300, 28), Size = new Vector2(300, 28),
String = "Configure Categories", String = "Configure Categories",
OnClick = () => _categoryConfigurationAddon?.Toggle(), OnClick = () => _categoryConfigurationAddon?.Toggle(),
}; };
AddNode(_categoryConfigurationButtonNode); AddNode(categoryConfigurationButtonNode);
} }
private void InitializeCategoryAddon() { private void InitializeCategoryAddon() {
@@ -33,4 +32,18 @@ public sealed class CategoryScrollingAreaNode : ScrollingListNode
Title = "Category Configuration Window", Title = "Category Configuration Window",
}; };
} }
protected override void Dispose(bool disposing, bool isNativeDestructor)
{
if (disposing)
{
if (_categoryConfigurationAddon != null)
{
_categoryConfigurationAddon.Close();
_categoryConfigurationAddon = null;
}
}
base.Dispose(disposing, isNativeDestructor);
}
} }