I have my PlayerController class with overriden Tick(float) function. I put there exception protection:
AMyPlayerState * MyPlayerState = (AMyPlayerState*)PlayerState;
if(!MyPlayerState->IsValidLowLevelFast())
{
//There was UE_LOG, but i removed it.
return;
}
This is Tick function, so I used fastest way to catch bad pointers (without cast). This code do it’s job flawlessly, but it have one issue: IsValidLowLevelFast flooding Log with LogUObjectBase:Error: ‘this’ pointer is invalid.. This is strange, because it is check function, it must not log it’s actions.
And there a second bug/my-fault: this flooding is get going after i stopped simulation. This means, that PlayerController still exists in memory even when there is no simulation running. Is that OK?
These two moments not affecting game stability by way.
P.S. And i have engine version 4.8.0 still.