From f635c149a236389934bd7a6850843d3612589772 Mon Sep 17 00:00:00 2001 From: Haselnussbomber Date: Wed, 12 Nov 2025 00:23:08 +0100 Subject: [PATCH] Set TextNode to null after destroying it --- Dalamud/Game/Gui/Dtr/DtrBar.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Dalamud/Game/Gui/Dtr/DtrBar.cs b/Dalamud/Game/Gui/Dtr/DtrBar.cs index dabe292bd..b5c671a6f 100644 --- a/Dalamud/Game/Gui/Dtr/DtrBar.cs +++ b/Dalamud/Game/Gui/Dtr/DtrBar.cs @@ -257,7 +257,7 @@ internal sealed unsafe class DtrBar : IInternalDisposableService, IDtrBar /// The resources to remove. internal void RemoveEntry(DtrBarEntry toRemove) { - this.RemoveNode(toRemove.TextNode); + this.RemoveNode(toRemove); if (toRemove.Storage != null) { @@ -542,9 +542,10 @@ internal sealed unsafe class DtrBar : IInternalDisposableService, IDtrBar return true; } - private void RemoveNode(AtkTextNode* node) + private void RemoveNode(DtrBarEntry data) { var dtr = this.GetDtr(); + var node = data.TextNode; if (dtr == null || dtr->RootNode == null || dtr->UldManager.NodeList == null || node == null) return; if (this.eventHandles.TryGetValue(node->AtkResNode.NodeId, out var eventHandles)) @@ -565,6 +566,7 @@ internal sealed unsafe class DtrBar : IInternalDisposableService, IDtrBar if (tmpPrevNode != null) tmpPrevNode->NextSiblingNode = tmpNextNode; node->AtkResNode.Destroy(true); + data.TextNode = null; dtr->RootNode->ChildCount = (ushort)(dtr->RootNode->ChildCount - 1); Log.Debug("Set last sibling of DTR and updated child count");