The editor crashes while attempting to load a modified Blueprint that uses Interface for review.

Hello, there is an issue in editor ver. 5.4 which affect a reviewer who attempts to review an updated Blueprint that uses an Interface. The described case uses Perforce and Swarm Review.

1) To reproduce create a Blueprint Interface for example, with a function that returns a Boolean. Create a Blueprint derived from an actor, add via Class Settings, the interface, implement the first interface function. Shelve the created interface and blueprint [1] - the shelve will be used later to simulate a reviewer workspace using one PC.

2) Update interface by creating the second function that returns a Boolean value and implement it in the blueprint class. Move files to another changelist. Create Swarm review [2].

3) Close Editor and unshelve files from step one [1] – this a state of reviewer’s workspace. Start Editor.

4) Use Revision Control \ Review Changelists where type a Swarm review changelist number from step two [2]. Click Load. As result the editor tries to access element in empty array and crashes in a check.

The crash is due to previous Rename operation, that reset a preallocated array which later FAsyncPackage2::ExecuteDeferredPostLoadLinkerLoadPackageExports tries to use.

Before loading change list for review, place a breakpoint in UObject::Rename on the line that calls ResetLoaders.

if (!(Flags & REN_ForceNoResetLoaders))

{

ResetLoaders(GetPackage());

}

Steps to Reproduce
Hello, there is an issue in editor ver. 5.4 which affect a reviewer who attempts to review an updated Blueprint that uses an Interface. The described case uses Perforce and Swarm Review.

1) To reproduce create a Blueprint Interface for example, with a function that returns a Boolean. Create a Blueprint derived from an actor, add via Class Settings, the interface, implement the first interface function. Shelve the created interface and blueprint [1] - the shelve will be used later to simulate a reviewer workspace using one PC.

2) Update the interface by adding the second function that returns a Boolean value and implement it in the blueprint class. Move files to another changelist. Create Swarm review [2].

3) Close Editor and unshelve files from step one [1] – this a state of reviewer’s workspace. Start Editor.

4) Use Revision Control \ Review Changelists where type a Swarm review changelist number from step two [2]. Click Load. As result the editor tries to access element in empty array and crashes in a check.

Please see attached print screens

Hello sorrry for the deleayed response. I’ll create a task to addres this but unfortunately I can’t make any garantees on when we’ll get to it. At the moment the review and diff tool have been put on hold to focus on other initiatives. That said, if you do happen to discover a fix for this bug, I’d be happy to merge it into the engine for you.

Once the task is approved for public eyes, you can view it’s progress here: Epic Games - Sign In