Description

When reverting the change of overriding a function from a blueprint's parent, the editor will crash if that blueprint has a child of its own.

Regression?: No
This also occurred in 4.16

Steps to Reproduce
  1. Create a new project, add it to a Perforce repository and enable source control in the project
  2. Create a Blueprint based off of Object named TestParent, a child of TestParent called TestChild, and a child of TestChild called TestGrandchild
  3. Add a function to TestParent
  4. Save all 3 blueprints and submit them to Perforce
  5. Checkout TestChild and TestGrandchild
  6. In TestChild, override the function from TestParent created in step 3
  7. Compile and save the TestChild Blueprint
  8. Return to the Content Browser and right-click the TestChild blueprint to Revert it.
  9. Select TestChild in the window that appears and click Revert
    Result: The editor crashes with an Access Violation
    Expected: The file is reverted successfully
Callstack
Access violation - code c0000005 (first/second chance not available)

UE4Editor_CoreUObject!UStruct::AddReferencedObjects() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:1315]
UE4Editor_CoreUObject!ReloadPackages() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\packagereload.cpp:499]
UE4Editor_UnrealEd!PackageTools::ReloadPackages() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\packagetools.cpp:584]
UE4Editor_UnrealEd!PackageTools::ReloadPackages() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\packagetools.cpp:424]
UE4Editor_SourceControlWindows!FSourceControlWindows::PromptForRevert() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\sourcecontrolwindows\private\ssourcecontrolrevert.cpp:487]
UE4Editor_ContentBrowser!FAssetContextMenu::ExecuteSCCRevert() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\contentbrowser\private\assetcontextmenu.cpp:2243]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,FAssetContextMenu,0,TTypeWrapper<void> __cdecl(void)>::Execute() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,FAssetContextMenu,0,void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:434]
UE4Editor_Slate!SMenuEntryBlock::OnClicked() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\multibox\smenuentryblock.cpp:1051]
UE4Editor_Slate!SMenuEntryBlock::OnMenuItemButtonClicked() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\multibox\smenuentryblock.cpp:1002]
UE4Editor_Slate!TMemberFunctionCaller<SMenuEntryBlock,FReply (__cdecl SMenuEntryBlock::*)(void) __ptr64>::operator()<>() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegateinstanceinterface.h:165]
UE4Editor_Slate!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SMenuEntryBlock,FReply (__cdecl SMenuEntryBlock::*)(void) __ptr64> >() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\templates\tuple.h:497]
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SMenuEntryBlock,0,FReply __cdecl(void)>::Execute() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:537]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:282]
UE4Editor_Slate!SMenuEntryButton::OnMouseButtonUp() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\multibox\smenuentryblock.cpp:399]
UE4Editor_Slate!<lambda_1002768c627006711ef2f351a87ec0e7>::operator()() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5199]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_1002768c627006711ef2f351a87ec0e7> >() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:232]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5188]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5690]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5670]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:1718]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:2161]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:881]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:721]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:1009]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3151]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32
ntdll

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-52999 in the post.

0
Login to Vote

Fixed
ComponentTools
Affects Versions4.174.184.19
Target Fix4.19
Fix Commit3792022
Main Commit3807911
Release Commit3813083
CreatedDec 4, 2017
ResolvedDec 6, 2017
UpdatedApr 27, 2018