Guard setCaretVisible and setCaretIndex against null movie

tickDirectEdit calls into Iggy every tick without checking if the
movie is still valid, which crashes inside iggy_w64.dll when the
Flash movie gets unloaded or isn't ready yet.
This commit is contained in:
MrTheShy 2026-03-06 17:47:26 +01:00
parent fbadb6ac39
commit 129223d502

View file

@ -94,6 +94,9 @@ void UIControl_TextInput::SetCharLimit(int iLimit)
void UIControl_TextInput::setCaretVisible(bool visible)
{
if (!m_parentScene || !m_parentScene->getMovie())
return;
// Check once whether this SWF's FJ_TextInput actually has a m_mcCaret child.
// IggyValuePathMakeNameRef always succeeds (creates a ref to undefined),
// so we validate by trying to read a property from the resolved path.
@ -124,6 +127,9 @@ void UIControl_TextInput::setCaretVisible(bool visible)
void UIControl_TextInput::setCaretIndex(int index)
{
if (!m_parentScene || !m_parentScene->getMovie())
return;
IggyDataValue result;
IggyDataValue value[1];
value[0].type = IGGY_DATATYPE_number;