Description

Looks like maybe we aren't replacing the source delegate function (SignatureFunction) reference on the UDelegateProperty after recompiling the class - the function's owner name has the TRASHCLASS prefix.

Steps to Reproduce
  1. Open UE 4.12.4 Editor
  2. Load QAGame
  3. Add Blueprint, subclass from Actor, name "BadActor"
  4. Edit "BadActor"
  5. Add a Dispatcher, name "Dispatcher"
  6. Add a Function, name "Bad"
  7. Add 3 Vector parameters to "Bad", leave names as defaults
  8. Compile & Save
  9. Drag Dispatcher into function graph, select "Bind" from popup men
  10. Drag Event pin from Bind node to function intro block's lower right corner and release to add "Event" input parameter to "Bad" function
  11. Compile & Save
  12. Drag from first Vector parameter into empty space, and add a "Make Array" node
  13. Extend Make Array to 3 inputs
  14. Hook up the other two parameters
  15. Compile & Save
  16. Add Execution link from function input node to bind node
  17. Compile & Save
  18. Drag pin from Array output of "Make Array" node to empty space
  19. Add a "ForEach" node
  20. Compile & Save
  21. Drag pin from Array output of "Make Array" node to empty space
  22. Add a "Get" node
  23. Compile & Save
  24. Repeat Steps 18 to 23 five more times
Callstack
>	UE4Editor-Engine-Win64-Debug.dll!UBlueprintGeneratedClass::GetAuthoritativeClass() Line 148	C++
  	UE4Editor-BlueprintGraph-Win64-Debug.dll!FMemberReference::SetFromField<UFunction>(const UField * InField, const bool bIsConsideredSelfContext) Line 120	C++
  	UE4Editor-BlueprintGraph-Win64-Debug.dll!FMemberReference::FillSimpleMemberReference<UFunction>(const UField * InField, FSimpleMemberReference & OutReference) Line 480	C++
  	UE4Editor-BlueprintGraph-Win64-Debug.dll!UEdGraphSchema_K2::ConvertPropertyToPinType(const UProperty * Property, FEdGraphPinType & TypeOut) Line 3211	C++
  	UE4Editor-BlueprintGraph-Win64-Debug.dll!UEdGraphSchema_K2::FunctionHasParamOfType(const UFunction * InFunction, const UEdGraph * InGraph, const FEdGraphPinType & DesiredPinType, bool bWantOutput) Line 940	C++
  	UE4Editor-BlueprintGraph-Win64-Debug.dll!BlueprintActionFilterImpl::IsFunctionMissingPinParam(const FBlueprintActionFilter & Filter, FBlueprintActionInfo & BlueprintAction) Line 1263	C++
  	UE4Editor-BlueprintGraph-Win64-Debug.dll!TBaseStaticDelegateInstance<bool __cdecl(FBlueprintActionFilter const & __ptr64,FBlueprintActionInfo & __ptr64)>::Execute(const FBlueprintActionFilter & <Params_0>, FBlueprintActionInfo & <Params_1>) Line 953	C++
  	UE4Editor-BlueprintGraph-Win64-Debug.dll!FBlueprintActionFilter::IsFilteredByThis(FBlueprintActionInfo & BlueprintAction) Line 1914	C++
  	UE4Editor-BlueprintGraph-Win64-Debug.dll!FBlueprintActionFilter::IsFiltered(FBlueprintActionInfo & BlueprintAction) Line 1855	C++
  	UE4Editor-Kismet-Win64-Debug.dll!FBlueprintActionMenuBuilderImpl::FMenuSectionDefinition::MakeMenuItems(TWeakPtr<FBlueprintEditor,0> EditorContext, FBlueprintActionInfo & DatabaseAction) Line 412	C++
  	UE4Editor-Kismet-Win64-Debug.dll!FBlueprintActionMenuBuilder::RebuildActionList() Line 533	C++
  	UE4Editor-Kismet-Win64-Debug.dll!FBlueprintActionMenuUtils::MakeContextMenu(const FBlueprintActionContext & Context, bool bIsContextSensitive, unsigned int ClassTargetMask, FBlueprintActionMenuBuilder & MenuOut) Line 678	C++
  	UE4Editor-Kismet-Win64-Debug.dll!SBlueprintActionMenu::CollectAllActions(FGraphActionListBuilderBase & OutAllActions) Line 447	C++
  	UE4Editor-Kismet-Win64-Debug.dll!TBaseSPMethodDelegateInstance<0,SBlueprintActionMenu,0,TTypeWrapper<void> __cdecl(FGraphActionListBuilderBase & __ptr64)>::Execute(FGraphActionListBuilderBase & <Params_0>) Line 321	C++
  	UE4Editor-Kismet-Win64-Debug.dll!TBaseSPMethodDelegateInstance<0,SBlueprintActionMenu,0,void __cdecl(FGraphActionListBuilderBase & __ptr64)>::ExecuteIfSafe(FGraphActionListBuilderBase & <Params_0>) Line 430	C++
  	UE4Editor-GraphEditor-Win64-Debug.dll!TBaseDelegate<void,FGraphActionListBuilderBase & __ptr64>::ExecuteIfBound(FGraphActionListBuilderBase & <Params_0>) Line 608	C++
  	UE4Editor-GraphEditor-Win64-Debug.dll!SGraphActionMenu::RefreshAllActions(bool bPreserveExpansion, bool bHandleOnSelectionEvent) Line 344	C++
  	UE4Editor-GraphEditor-Win64-Debug.dll!SGraphActionMenu::Construct(const SGraphActionMenu::FArguments & InArgs, bool bIsReadOnly) Line 334	C++
  	UE4Editor-Kismet-Win64-Debug.dll!RequiredArgs::T0RequiredArgs::CallConstruct<SGraphActionMenu>(const TSharedRef<SGraphActionMenu,0> & OnWidget, const SGraphActionMenu::FArguments & WithNamedArgs) Line 825	C++
  	UE4Editor-Kismet-Win64-Debug.dll!TDecl<SGraphActionMenu,RequiredArgs::T0RequiredArgs>::operator<<=(const SGraphActionMenu::FArguments & InArgs) Line 1082	C++
  	UE4Editor-Kismet-Win64-Debug.dll!SBlueprintActionMenu::Construct(const SBlueprintActionMenu::FArguments & InArgs, TSharedPtr<FBlueprintEditor,0> InEditor) Line 342	C++
  	UE4Editor-Kismet-Win64-Debug.dll!RequiredArgs::T1RequiredArgs<TSharedRef<FBlueprintEditor,0> && __ptr64>::CallConstruct<SBlueprintActionMenu>(const TSharedRef<SBlueprintActionMenu,0> & OnWidget, const SBlueprintActionMenu::FArguments & WithNamedArgs) Line 842	C++
  	UE4Editor-Kismet-Win64-Debug.dll!TDecl<SBlueprintActionMenu,RequiredArgs::T1RequiredArgs<TSharedRef<FBlueprintEditor,0> && __ptr64> >::operator<<=(const SBlueprintActionMenu::FArguments & InArgs) Line 1082	C++
  	UE4Editor-Kismet-Win64-Debug.dll!FBlueprintEditor::OnCreateGraphActionMenu(UEdGraph * InGraph, const FVector2D & InNodePosition, const TArray<UEdGraphPin *,FDefaultAllocator> & InDraggedPins, bool bAutoExpand, TBaseDelegate<void> InOnMenuClosed) Line 3067	C++
  	UE4Editor-Kismet-Win64-Debug.dll!TMemberFunctionCaller<FBlueprintEditor,FActionMenuContent (__cdecl FBlueprintEditor::*)(UEdGraph * __ptr64,FVector2D const & __ptr64,TArray<UEdGraphPin * __ptr64,FDefaultAllocator> const & __ptr64,bool,TBaseDelegate<void>) __ptr64>::operator()<UEdGraph * __ptr64 & __ptr64,FVector2D const & __ptr64,TArray<UEdGraphPin * __ptr64,FDefaultAllocator> const & __ptr64,bool & __ptr64,TBaseDelegate<void> & __ptr64>(UEdGraph * & <Args_0>, const FVector2D & <Args_1>, const TArray<UEdGraphPin *,FDefaultAllocator> & <Args_2>, bool & <Args_3>, TBaseDelegate<void> & <Args_4>) Line 161	C++
  	UE4Editor-Kismet-Win64-Debug.dll!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter_ExplicitReturnType<FActionMenuContent,TMemberFunctionCaller<FBlueprintEditor,FActionMenuContent (__cdecl FBlueprintEditor::*)(UEdGraph * __ptr64,FVector2D const & __ptr64,TArray<UEdGraphPin * __ptr64,FDefaultAllocator> const & __ptr64,bool,TBaseDelegate<void>) __ptr64>,UEdGraph * __ptr64 & __ptr64,FVector2D const & __ptr64,TArray<UEdGraphPin * __ptr64,FDefaultAllocator> const & __ptr64,bool & __ptr64,TBaseDelegate<void> & __ptr64>(TMemberFunctionCaller<FBlueprintEditor,FActionMenuContent (__cdecl FBlueprintEditor::*)(UEdGraph *,FVector2D const &,TArray<UEdGraphPin *,FDefaultAllocator> const &,bool,TBaseDelegate<void>)> && Func, UEdGraph * & <Args_0>, const FVector2D & <Args_1>, const TArray<UEdGraphPin *,FDefaultAllocator> & <Args_2>, bool & <Args_3>, TBaseDelegate<void> & <Args_4>) Line 128	C++
  	UE4Editor-Kismet-Win64-Debug.dll!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,FActionMenuContent __cdecl(UEdGraph * __ptr64,FVector2D const & __ptr64,TArray<UEdGraphPin * __ptr64,FDefaultAllocator> const & __ptr64,bool,TBaseDelegate<void>)>::Execute(UEdGraph * <Params_0>, const FVector2D & <Params_1>, const TArray<UEdGraphPin *,FDefaultAllocator> & <Params_2>, bool <Params_3>, TBaseDelegate<void> <Params_4>) Line 321	C++
  	UE4Editor-GraphEditor-Win64-Debug.dll!TBaseDelegate<FActionMenuContent,UEdGraph * __ptr64,FVector2D const & __ptr64,TArray<UEdGraphPin * __ptr64,FDefaultAllocator> const & __ptr64,bool,TBaseDelegate<void> >::Execute(UEdGraph * <Params_0>, const FVector2D & <Params_1>, const TArray<UEdGraphPin *,FDefaultAllocator> & <Params_2>, bool <Params_3>, TBaseDelegate<void> <Params_4>) Line 521	C++
  	UE4Editor-GraphEditor-Win64-Debug.dll!SGraphEditorImpl::GraphEd_OnGetContextMenuFor(const FGraphContextMenuArguments & SpawnInfo) Line 503	C++
  	UE4Editor-GraphEditor-Win64-Debug.dll!TMemberFunctionCaller<SGraphEditorImpl,FActionMenuContent (__cdecl SGraphEditorImpl::*)(FGraphContextMenuArguments const & __ptr64) __ptr64>::operator()<FGraphContextMenuArguments const & __ptr64>(const FGraphContextMenuArguments & <Args_0>) Line 161	C++
  	UE4Editor-GraphEditor-Win64-Debug.dll!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter_ExplicitReturnType<FActionMenuContent,TMemberFunctionCaller<SGraphEditorImpl,FActionMenuContent (__cdecl SGraphEditorImpl::*)(FGraphContextMenuArguments const & __ptr64) __ptr64>,FGraphContextMenuArguments const & __ptr64>(TMemberFunctionCaller<SGraphEditorImpl,FActionMenuContent (__cdecl SGraphEditorImpl::*)(FGraphContextMenuArguments const &)> && Func, const FGraphContextMenuArguments & <Args_0>) Line 128	C++
  	UE4Editor-GraphEditor-Win64-Debug.dll!TBaseSPMethodDelegateInstance<0,SGraphEditorImpl,0,FActionMenuContent __cdecl(FGraphContextMenuArguments const & __ptr64)>::Execute(const FGraphContextMenuArguments & <Params_0>) Line 321	C++
  	UE4Editor-GraphEditor-Win64-Debug.dll!TBaseDelegate<FActionMenuContent,FGraphContextMenuArguments const & __ptr64>::Execute(const FGraphContextMenuArguments & <Params_0>) Line 521	C++
  	UE4Editor-GraphEditor-Win64-Debug.dll!SGraphPanel::SummonContextMenu(const FVector2D & WhereToSummon, const FVector2D & WhereToAddNode, UEdGraphNode * ForNode, UEdGraphPin * ForPin, const TArray<UEdGraphPin *,FDefaultAllocator> & DragFromPins, bool bShiftOperation) Line 1038	C++
  	UE4Editor-GraphEditor-Win64-Debug.dll!FDragConnection::DroppedOnPanel(const TSharedRef<SWidget,0> & Panel, FVector2D ScreenPosition, FVector2D GraphPosition, UEdGraph & Graph) Line 277	C++
  	UE4Editor-GraphEditor-Win64-Debug.dll!SGraphPanel::OnDrop(const FGeometry & MyGeometry, const FDragDropEvent & DragDropEvent) Line 948	C++
  	UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::RoutePointerUpEvent::__l26::<lambda>(const FArrangedWidget & CurWidget, const FPointerEvent & Event) Line 4632	C++
  	UE4Editor-Slate-Win64-Debug.dll!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,FReply <lambda>(const FArrangedWidget &, const FPointerEvent &) >(FSlateApplication * ThisApplication, FEventRouter::FBubblePolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::__l26::FReply <lambda>(const FArrangedWidget &, const FPointerEvent &) & Lambda) Line 215	C++
  	UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::RoutePointerUpEvent(FWidgetPath & WidgetsUnderPointer, FPointerEvent & PointerEvent) Line 4635	C++
  	UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::ProcessMouseButtonUpEvent(FPointerEvent & MouseEvent) Line 5041	C++
  	UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const FVector2D CursorPos) Line 5021	C++
  	UE4Editor-Core-Win64-Debug.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 1510	C++
  	UE4Editor-Core-Win64-Debug.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,0> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 1850	C++
  	UE4Editor-Core-Win64-Debug.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 802	C++
  	UE4Editor-Core-Win64-Debug.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 666	C++
  	[External Code]	
  	UE4Editor-Core-Win64-Debug.dll!WinPumpMessages() Line 881	C++
  	UE4Editor-Core-Win64-Debug.dll!FWindowsPlatformMisc::PumpMessages(bool bFromMainLoop) Line 906	C++
  	UE4Editor-Win64-Debug.exe!FEngineLoop::Tick() Line 2729	C++
  	UE4Editor-Win64-Debug.exe!EngineTick() Line 53	C++
  	UE4Editor-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 151	C++
  	UE4Editor-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 189	C++
  	[External Code]	
 

Have Comments or More Details?

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

1
Login to Vote

Cannot Reproduce
ComponentGameplay - Blueprint
Affects Versions4.12.44.14
Target Fix4.15
Fix Commit3233710
Main Commit3255791
CreatedOct 10, 2016
ResolvedDec 15, 2016
UpdatedFeb 9, 2017