- fixed crash on accessing state owner during VM abort

https://forum.zdoom.org/viewtopic.php?t=61338
This commit is contained in:
alexey.lysiuk 2018-07-19 13:38:49 +03:00
parent 7da61ddfee
commit 4d35b12808
1 changed files with 10 additions and 6 deletions

View File

@ -154,14 +154,18 @@ bool FState::CallAction(AActor *self, AActor *stateowner, FStateParamInfo *info,
catch (CVMAbortException &err) catch (CVMAbortException &err)
{ {
err.MaybePrintMessage(); err.MaybePrintMessage();
const char *callinfo = "";
if (info != nullptr && info->mStateType == STATE_Psprite) if (stateowner != nullptr)
{ {
if (stateowner->IsKindOf(NAME_Weapon) && stateowner != self) callinfo = "weapon "; const char *callinfo = "";
else callinfo = "overlay "; if (info != nullptr && info->mStateType == STATE_Psprite)
{
if (stateowner->IsKindOf(NAME_Weapon) && stateowner != self) callinfo = "weapon ";
else callinfo = "overlay ";
}
err.stacktrace.AppendFormat("Called from %sstate %s in %s\n", callinfo, FState::StaticGetStateName(this).GetChars(), stateowner->GetClass()->TypeName.GetChars());
} }
err.stacktrace.AppendFormat("Called from %sstate %s in %s\n", callinfo, FState::StaticGetStateName(this).GetChars(), stateowner->GetClass()->TypeName.GetChars());
throw;
throw; throw;
} }