We have a custom
UWidget class that represents an item in a menu. There are two places where we call
IsHovered on that class and they both crash seemingly randomly.
UUserWidget subclass that contains the menu items we iterate over them to see which one is selected using this code:
UMenuItem* NewSelection = nullptr;
for (UMenuItem* MenuItem : Children)
NewSelection = MenuItem;
Randomly it crashes on the
MenuItem->IsHovered() line with an error that says
MenuItem is nullptr but when it breaks we can inspect it and it's not a
nullptr and everything in the callstack looks good.
The other place that it crashes is in the
UMenuItem class itself. In the tick method we just have some code that checks whether it's hovered and updates the highlight state of the widget.
Hovered = IsHovered();
When the crash happens here it says
this-> is nullptr but again we can inspect when it breaks and see that this is not the case. We can even step up the callstack and verify that the list that's holding the menu items looks good.
Has anyone seen a crash like this before?
Mar 28 '19 at 05:01 PM
in C++ Programming