step to reproduce:
1.create my own USTRUCT:
USTRUCT()
struct MYPROJECT_API FMyCustomCurve
{
GENERATED_BODY()
public:
....
UPROPERTY(config, EditAnywhere, meta = (
DisplayName = "Custom Tween Curve",
XAxisName = "Alpha", YAxisName = "Value"))
FRuntimeFloatCurve CustomCurve;
};
2.add structure to a BP Function local variable.
3.Press Create External Curve for structure.
4.Crash.
After trace code, I find out Owner is nullptr which in
void FCurveStructCustomization::CustomizeHeader, OuterObjects is 0.
…\Epic Games\4.13\Engine\Source\Editor\DetailCustomizations\Private\CurveStructCustomization.cpp : 64
here is C++ Call Stack:
UE4Editor-CoreUObject.dll!UObjectBaseUtility::GetName() Line 345 C++
UE4Editor-DetailCustomizations.dll!FCurveStructCustomization::OnCreateButtonClicked() Line 268 C++
UE4Editor-DetailCustomizations.dll!TMemberFunctionCaller<FCurveStructCustomization,FReply (__cdecl FCurveStructCustomization::)(void) __ptr64>::operator()<>() Line 161 C++
UE4Editor-DetailCustomizations.dll!TTupleImpl<TIntegerSequence >::ApplyAfter<TMemberFunctionCaller<FCurveStructCustomization,FReply (__cdecl FCurveStructCustomization::)(void) __ptr64> >(TMemberFunctionCaller<FCurveStructCustomization,FReply (__cdecl FCurveStructCustomization::*)(void)> && Func) Line 115 C++
UE4Editor-DetailCustomizations.dll!TBaseSPMethodDelegateInstance<0,FCurveStructCustomization,0,FReply __cdecl(void)>::Execute() Line 317 C++
UE4Editor-Slate.dll!TBaseDelegate::Execute() Line 521 C++
UE4Editor-Slate.dll!SButton::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 278 C++
UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent::__l8::(const FArrangedWidget & TargetWidget, const FPointerEvent & Event) Line 4901 C++
UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,FReply (const FArrangedWidget &, const FPointerEvent &) >(FSlateApplication * ThisApplication, FEventRouter::FToLeafmostPolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::l8::FReply (const FArrangedWidget &, const FPointerEvent &) & Lambda) Line 215 C++
UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent(FWidgetPath & WidgetsUnderPointer, FPointerEvent & PointerEvent) Line 4890 C++
UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent(FPointerEvent & MouseEvent) Line 5348 C++
UE4Editor-Slate.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const FVector2D CursorPos) Line 5328 C++
UE4Editor-Core.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 1584 C++
UE4Editor-Core.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 1930 C++
UE4Editor-Core.dll!FWindowsApplication::ProcessMessage(HWND * hwnd, unsigned int msg, unsigned int64 wParam, int64 lParam) Line 747 C++
UE4Editor-Core.dll!FWindowsApplication::AppWndProc(HWND * hwnd, unsigned int msg, unsigned int64 wParam, int64 lParam) Line 669 C++
[External Code]
UE4Editor-Core.dll!FWindowsPlatformMisc::PumpMessages(bool bFromMainLoop) Line 905 C++
UE4Editor.exe!FEngineLoop::Tick() Line 2788 C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE * hInInstance, HINSTANCE * hPrevInstance, int nCmdShow) Line 156 C++
UE4Editor.exe!WinMain(HINSTANCE * hInInstance, HINSTANCE * hPrevInstance, char * __formal, int nCmdShow) Line 191 C++