Crash on Creating Function in Macro Library

Found: Editor crashes when attempting to create function in a macro library.

Steps to Reproduce:

  1. Open a Blueprint Macro Library.
  2. Add a function that can bind to an event, such as “Set Timer by Event”.
  3. Add “Create Event”.
  4. Select “Create a Matching Function”.

Result: Editor crashes.

Callstack:

Assertion failed: Blueprint->BlueprintType != BPTYPE_MacroLibrary [File:D:\dev\X\Engine\Source\Editor\BlueprintGraph\Private\EdGraphSchema_K2.cpp] [Line: 3415]

X-Core.dll!ReportAssert()+0x62 [D:\dev\X\Engine\Source\Runtime\Core\Private\Windows\WindowsPlatformCrashContext.cpp@2040]
X-Core.dll!FWindowsErrorOutputDevice::Serialize()+0x270 [D:\dev\X\Engine\Source\Runtime\Core\Private\Windows\WindowsErrorOutputDevice.cpp@84]
X-Core.dll!FOutputDevice::LogfImpl()+0x14F [D:\dev\X\Engine\Source\Runtime\Core\Private\Misc\OutputDevice.cpp@81]
X-Core.dll!AssertFailedImplV()+0xD7 [D:\dev\X\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp@150]
X-Core.dll!FDebug::CheckVerifyFailedImpl2()+0xAC [D:\dev\X\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp@665]
X-BlueprintGraph.dll!UEdGraphSchema_K2::CreateFunctionGraphTerminators()+0x65 [D:\dev\X\Engine\Source\Editor\BlueprintGraph\Private\EdGraphSchema_K2.cpp@3415]
X-GraphEditor.dll!FBlueprintEditorUtils::AddFunctionGraph()+0x7E [D:\dev\X\Engine\Source\Editor\UnrealEd\Public\Kismet2\BlueprintEditorUtils.h@392]
X-GraphEditor.dll!SGraphNodeK2CreateDelegate::OnFunctionSelected()+0x352 [D:\dev\X\Engine\Source\Editor\GraphEditor\Private\KismetNodes\SGraphNodeK2CreateDelegate.cpp@199]
X-GraphEditor.dll!TBaseSPMethodDelegateInstance<0,SGraphNodeK2CreateDelegate,1,void __cdecl(TSharedPtr<FString,1>,enum ESelectInfo::Type),FDefaultDelegateUserPolicy>::ExecuteIfSafe()+0xD2 [D:\dev\X\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h@299]
X-ToolWidgets.dll!TDelegate<void __cdecl(TSharedPtr<FString,1>,enum ESelectInfo::Type),FDefaultDelegateUserPolicy>::ExecuteIfBound<void,0>()+0x74 [D:\dev\X\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl@634]
X-ToolWidgets.dll!SSearchableComboBox::OnSelectionChanged_Internal()+0xED [D:\dev\X\Engine\Source\Developer\ToolWidgets\Private\SSearchableComboBox.cpp@248]
X-ToolWidgets.dll!TBaseSPMethodDelegateInstance<0,SSearchableComboBox,1,void __cdecl(TSharedPtr<FString,1>,enum ESelectInfo::Type),FDefaultDelegateUserPolicy>::ExecuteIfSafe()+0xD2 [D:\dev\X\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h@299]
X-ToolWidgets.dll!TDelegate<void __cdecl(TSharedPtr<FString,1>,enum ESelectInfo::Type),FDefaultDelegateUserPolicy>::ExecuteIfBound<void,0>()+0x74 [D:\dev\X\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl@634]
X-ToolWidgets.dll!SListView<TSharedPtr<FString,1> >::Private_SignalSelectionChanged()+0x218 [D:\dev\X\Engine\Source\Runtime\Slate\Public\Widgets\Views\SListView.h@1007]
X-ToolWidgets.dll!STableRow<TSharedPtr<FString,1> >::OnMouseButtonUp()+0x9E3 [D:\dev\X\Engine\Source\Runtime\Slate\Public\Widgets\Views\STableRow.h@602]
X-Slate.dll!FSlateApplication::RoutePointerUpEvent'::8’::<lambda_2>::operator()()+0x12B [D:\dev\X\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp@5380]
X-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,FSlateApplication::RoutePointerUpEvent'::8’::<lambda_2> >()+0x214 [D:\dev\X\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp@461]
X-Slate.dll!FSlateApplication::RoutePointerUpEvent()+0x33F [D:\dev\X\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp@5366]
X-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent()+0x386 [D:\dev\X\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp@5951]
X-Slate.dll!FSlateApplication::OnMouseUp()+0x2FC [D:\dev\X\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp@5907]
X-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage()+0xF60 [D:\dev\X\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp@2288]
X-ApplicationCore.dll!FWindowsApplication::DeferMessage()+0x1C6 [D:\dev\X\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp@2800]
X-ApplicationCore.dll!FWindowsApplication::ProcessMessage()+0x1CC2 [D:\dev\X\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp@1961]
X-ApplicationCore.dll!FWindowsApplication::AppWndProc()+0x77 [D:\dev\X\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp@948]
X-ApplicationCore.dll!FWindowsPlatformApplicationMisc::PumpMessages()+0xD6 [D:\dev\X\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsPlatformApplicationMisc.cpp@145]
X-Win64-DebugGame.exe!FEngineLoop::Tick()+0x285D [D:\dev\X\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp@5865]
X-Win64-DebugGame.exe!GuardedMain()+0x42C [D:\dev\X\Engine\Source\Runtime\Launch\Private\Launch.cpp@188]
X-Win64-DebugGame.exe!GuardedMainWrapper()+0x1A [D:\dev\X\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp@151]
X-Win64-DebugGame.exe!LaunchWindowsStartup()+0x245 [D:\dev\X\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp@309]
X-Win64-DebugGame.exe!WinMain()+0x14 [D:\dev\X\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp@349]
X-Win64-DebugGame.exe!__scrt_common_main_seh()+0x106 [D:\a_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl@288]