Having a child blueprint that contains a custom event with the same name as a custom even that it is calling from its parent causes the editor to crash when attempting to compile the original parent blueprint.
Found in 4.11 Preview 5. Reproduced in Main CL 2858567.
Could not reproduce in 4.10.2. This is a regression.
Source Context
116 // // before this class 117 // if (Component->GetClass()->HasAnyClassFlags(CLASS_CompiledFromBlueprint)) 118 // { 119 // DependenciesOut.Add(Component); 120 // } 121 // } 122 } 123 124 #if WITH_EDITOR 125 126 UClass* UBlueprintGeneratedClass::GetAuthoritativeClass() 127 { 128 if (nullptr == ClassGeneratedBy) // to track UE-11597 and UE-11595 129 { 130 ***** UE_LOG(LogBlueprint, Fatal, TEXT("UBlueprintGeneratedClass::GetAuthoritativeClass: ClassGeneratedBy is null. class '%s'"), *GetPathName()); 131 } 132 133 UBlueprint* GeneratingBP = CastChecked<UBlueprint>(ClassGeneratedBy); 134 135 check(GeneratingBP); 136 137 return (GeneratingBP->GeneratedClass != NULL) ? GeneratingBP->GeneratedClass : this; 138 } 139 140 struct FConditionalRecompileClassHepler 141 { 142 enum ENeededAction 143 { 144 None, 145 StaticLink,
1. Open the editor
2. Create a new actor blueprint (BP_Actor)
3. Add a custom event to BP_Actor called TestEvent
4. Compile BP_Actor
5. Create a Child Blueprint Derived from BP_Actor
6. In the child bp, call Test Event from BP_Actor
7. Create a new custom event in the child blueprint called TestEvent
8. Compile BP_Actor
9. Compile BP_Actor_Child
10. Compile BP_Actor
Result: Editor crashes
Expected: No crash would occur
Fatal error: [Link Removed] [Line: 131] UBlueprintGeneratedClass::GetAuthoritativeClass: ClassGeneratedBy is null. class '/Engine/Transient.TRASHCLASS_BP_Actor_40'
UE4Editor_Engine!UBlueprintGeneratedClass::GetAuthoritativeClass() blueprintgeneratedclass.cpp:131 UE4Editor_UnrealEd!FBlueprintEditorUtils::RefreshExternalBlueprintDependencyNodes() blueprinteditorutils.cpp:572 UE4Editor_KismetCompiler!FKismetCompilerContext::Compile() kismetcompiler.cpp:3520 UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprintInner() kismetcompilermodule.cpp:100 UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprint() kismetcompilermodule.cpp:192 UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() kismet2.cpp:755 UE4Editor_Kismet!FBlueprintEditor::Compile() blueprinteditor.cpp:3147 UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl() delegateinstancesimpl_variadics.inl:321 UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl() delegateinstancesimpl_variadics.inl:427 UE4Editor_Slate!FUICommandList::ExecuteAction() uicommandlist.cpp:87 UE4Editor_Slate!SToolBarButtonBlock::OnClicked() stoolbarbuttonblock.cpp:300 UE4Editor_Slate!TMemberFunctionCaller<SToolBarButtonBlock,FReply() delegateinstanceinterface_variadics.h:161 UE4Editor_Slate!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter_ExplicitReturnType<FReply,TMemberFunctionCaller<SToolBarButtonBlock,FReply() tuple.h:128 UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl() delegateinstancesimpl_variadics.inl:321 UE4Editor_Slate!TBaseDelegate<FReply>::Execute() delegatesignatureimpl_variadics.inl:521 UE4Editor_Slate!SButton::OnMouseButtonUp() sbutton.cpp:273 UE4Editor_Slate!<lambda_9ed539f2a96fd1ccd6d2214174cc7705>::operator() slateapplication.cpp:4508 UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_9ed539f2a96fd1ccd6d2214174cc7705> >() slateapplication.cpp:214 UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() slateapplication.cpp:4498 UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() slateapplication.cpp:4915 UE4Editor_Slate!FSlateApplication::OnMouseUp() slateapplication.cpp:4891 UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() windowsapplication.cpp:1407 UE4Editor_Core!FWindowsApplication::DeferMessage() windowsapplication.cpp:1712 UE4Editor_Core!FWindowsApplication::ProcessMessage() windowsapplication.cpp:696 UE4Editor_Core!FWindowsApplication::AppWndProc() windowsapplication.cpp:618 user32!<Unknown> user32!<Unknown> UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() windowsplatformmisc.cpp:884 UE4Editor!FEngineLoop::Tick() launchengineloop.cpp:2604 UE4Editor!GuardedMain() launch.cpp:142 UE4Editor!GuardedMainWrapper() launchwindows.cpp:126 UE4Editor!WinMain() launchwindows.cpp:200 UE4Editor!__scrt_common_main_seh() exe_common.inl:264 kernel32!<Unknown> ntdll!<Unknown>
Head over to the existing Questions & Answers thread and let us know what's up.
0 |
Component | UE - Gameplay - Blueprint |
---|---|
Affects Versions | 4.11, 4.12 |
Target Fix | 4.12.1 |
Fix Commit | 2999763 |
---|---|
Release Commit | 2999778 |
Created | Feb 10, 2016 |
---|---|
Resolved | Jun 3, 2016 |
Updated | Apr 27, 2018 |