Add temporary null-check to context menu stuff to hopefully prevent random crashes.

This commit is contained in:
Ottermandias 2022-04-09 22:24:09 +02:00
parent 5824d837bc
commit aa8d3b8f78

View file

@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Numerics; using System.Numerics;
@ -456,11 +456,16 @@ namespace Dalamud.Game.Gui.ContextMenus
var redButtonActions = &((AgentContext*)this.agentContextInterface)->Items->RedButtonActions; var redButtonActions = &((AgentContext*)this.agentContextInterface)->Items->RedButtonActions;
*(redButtonActions + contextMenuItemIndex) = action; *(redButtonActions + contextMenuItemIndex) = action;
} }
else else if (((AgentContext*)this.agentContextInterface)->Items != null)
{ {
// TODO: figure out why this branch is reached on inventory contexts and why Items is sometimes null.
var actions = &((AgentContext*)this.agentContextInterface)->Items->Actions; var actions = &((AgentContext*)this.agentContextInterface)->Items->Actions;
*(actions + this.FirstContextMenuItemIndex + contextMenuItemIndex) = action; *(actions + this.FirstContextMenuItemIndex + contextMenuItemIndex) = action;
} }
else
{
PluginLog.Warning("Context Menu action failed, Items pointer was unexpectedly null.");
}
if (contextMenuItem.Indicator == ContextMenuItemIndicator.Previous) if (contextMenuItem.Indicator == ContextMenuItemIndicator.Previous)
{ {