- 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 committed by drfrag666
parent 52f6592996
commit b94801b994

View file

@ -161,14 +161,18 @@ bool FState::CallAction(AActor *self, AActor *stateowner, FStateParamInfo *info,
catch (CVMAbortException &err)
{
err.MaybePrintMessage();
const char *callinfo = "";
if (info != nullptr && info->mStateType == STATE_Psprite)
if (stateowner != nullptr)
{
if (stateowner->IsKindOf(NAME_Weapon) && stateowner != self) callinfo = "weapon ";
else callinfo = "overlay ";
const char *callinfo = "";
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;
}