Description

User reports on the forums of being stuck in an infinite loop and noticed a dead branch in the titled function:

The body of if (SubLODActor) doesn't actually do anything, guaranteeing an infinite loop if the FirstActor is an ALodActor.

It looks like in the body of that if statement it should be looping through all sub ALODActors and a recursive call on each until it gets a non-ALODActor or nullptr.

Specifically this section of code where the first branch has no function:

const ALODActor* SubLODActor = Cast<ALODActor>(FirstActor);
if (SubLODActor)
{
    SubLODActor->SubActors.IsValidIndex(0) ? SubLODActor->SubActors[0] : nullptr;
}
else
{
    // Unable to find a valid actor
    FirstActor = nullptr;
}

 

 

Steps to Reproduce

Unknown

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-62838 in the post.

0
Login to Vote

Fixed
ComponentTools - HLOD
Affects Versions4.20.1
Target Fix4.20.2
Fix Commit4282918
Release Commit4497729
CreatedAug 13, 2018
ResolvedAug 14, 2018
UpdatedOct 23, 2018