Fix crash when unregistering landscape neighbors that do not have a scene proxy. #rb juan.canada, Yujiang.Wang

[CL 15009949 by brandon dawson in ue5-main branch]
This commit is contained in:
brandon dawson
2021-01-07 10:46:13 -04:00
parent 9f38bc0ef9
commit 820c621b6e

View File

@@ -4532,17 +4532,16 @@ void FLandscapeNeighborInfo::UnregisterNeighbors(FLandscapeComponentSceneProxy*
{
FLandscapeRenderSystem& RenderSystem = *LandscapeRenderSystems.FindChecked(LandscapeKey);
RenderSystem.UnregisterEntity(SceneProxy);
if (RenderSystem.NumRegisteredEntities == 0)
{
FLandscapeRenderSystem* RenderSystemPtr = LandscapeRenderSystems.FindChecked(LandscapeKey);
delete RenderSystemPtr;
LandscapeRenderSystems.Remove(LandscapeKey);
}
}
if (SceneProxyMap->Num() == 0)
{
FLandscapeRenderSystem* RenderSystemPtr = LandscapeRenderSystems.FindChecked(LandscapeKey);
check(RenderSystemPtr->NumRegisteredEntities == 0);
delete RenderSystemPtr;
LandscapeRenderSystems.Remove(LandscapeKey);
// remove the entire LandscapeKey entry as this is the last scene proxy
SharedSceneProxyMap.Remove(LandscapeKey);
}