Description

Trying to set the value of an element of a fixed-size TAssetPtr array in the Editor results in the Editor crashing. This did not occur in 4.13.

The attached callstack is from debugging the project in Visual Studio.

Steps to Reproduce
  1. Create a new code project using the First Person template.
  2. Build the project in Visual Studio.
  3. Open the project in the Editor.
  4. Add a new Actor class to the project named MyActor.
  5. Close the Editor.
  6. Open the header file for the default character class that is included in the project.
  7. Add an include for your new MyActor header file at the top of the header file.
  8. At the bottom of the header file, add the following property:
    UPROPERTY(EditAnywhere)
    TAssetPtr<AMyActor> ModifierIcons[12];
    
  9. Build the project in Visual Studio.
  10. Open the project in the Editor.
  11. Create a Blueprint for the MyActor class and place an instance of the Blueprint in the level.
  12. Open the Character Blueprint.
    • Make sure the full Blueprint editor is opened.
  13. Locate the array property that was added to the class in step 8.
  14. Select one of the elements of the array and set it to use the instance of the MyActor blueprint in the level.

RESULT:
The Editor will crash.

EXPECTED:
The element in the array is set.

Callstack
>	UE4Editor-Core.dll!FMallocTBB::Free(void * Ptr) Line 109	C++
 	UE4Editor-Core.dll!FMemory::Free(void * Original) Line 49	C++
 	[External Code]	
 	UE4Editor-CoreUObject.dll!TProperty<FAssetPtr,UObjectPropertyBase>::DestroyValueInternal(void * Dest) Line 1014	C++
 	UE4Editor-PropertyEditor.dll!FPropertyNode::PropagatePropertyChange(UObject * ModifiedObject, const wchar_t * NewValue, const FString & PreviousValue) Line 2903	C++
 	UE4Editor-PropertyEditor.dll!FPropertyValueImpl::ImportText(const TArray<FObjectBaseAddress,FDefaultAllocator> & InObjects, const TArray<FString,FDefaultAllocator> & InValues, FPropertyNode * InPropertyNode, unsigned int Flags) Line 505	C++
 	UE4Editor-PropertyEditor.dll!FPropertyValueImpl::ImportText(const FString & InValue, FPropertyNode * InPropertyNode, unsigned int Flags) Line 331	C++
 	UE4Editor-PropertyEditor.dll!FPropertyValueImpl::SendTextToObjectProperty(const FString & Text, unsigned int Flags) Line 287	C++
 	UE4Editor-PropertyEditor.dll!FPropertyHandleObject::SetValue(const FAssetData & NewValue, unsigned int Flags) Line 2882	C++
 	UE4Editor-PropertyEditor.dll!SPropertyEditorAsset::SetValue(const FAssetData & AssetData) Line 581	C++
 	UE4Editor-PropertyEditor.dll!SPropertyEditorAsset::OnActorSelected(AActor * InActor) Line 720	C++
 	UE4Editor-PropertyEditor.dll!TBaseSPMethodDelegateInstance<0,SPropertyEditorAsset,0,TTypeWrapper<void> __cdecl(AActor * __ptr64)>::Execute(AActor * <Params_0>) Line 318	C++
 	UE4Editor-PropertyEditor.dll!TBaseSPMethodDelegateInstance<0,SPropertyEditorAsset,0,void __cdecl(AActor * __ptr64)>::ExecuteIfSafe(AActor * <Params_0>) Line 425	C++
 	UE4Editor-PropertyEditor.dll!SPropertyMenuActorPicker::OnActorSelected(AActor * InActor) Line 183	C++
 	UE4Editor-PropertyEditor.dll!TBaseSPMethodDelegateInstance<0,SPropertyMenuActorPicker,0,TTypeWrapper<void> __cdecl(AActor * __ptr64)>::Execute(AActor * <Params_0>) Line 318	C++
 	UE4Editor-PropertyEditor.dll!TBaseSPMethodDelegateInstance<0,SPropertyMenuActorPicker,0,void __cdecl(AActor * __ptr64)>::ExecuteIfSafe(AActor * <Params_0>) Line 425	C++
 	UE4Editor-SceneOutliner.dll!SceneOutliner::OnSceneOutlinerItemClicked(TSharedRef<SceneOutliner::ITreeItem,0> Item, TBaseDelegate<void,AActor *> OnActorPicked) Line 17	C++
 	UE4Editor-SceneOutliner.dll!TTupleImpl<TIntegerSequence<unsigned int,0>,TBaseDelegate<void,AActor * __ptr64> >::ApplyAfter<void (__cdecl*const & __ptr64)(TSharedRef<SceneOutliner::ITreeItem,0>,TBaseDelegate<void,AActor * __ptr64>),TSharedRef<SceneOutliner::ITreeItem,0> & __ptr64>(void(*)(TSharedRef<SceneOutliner::ITreeItem,0>, TBaseDelegate<void,AActor *>) & Func, TSharedRef<SceneOutliner::ITreeItem,0> & <Args_0>) Line 89	C++
 	UE4Editor-SceneOutliner.dll!TBaseStaticDelegateInstance<void __cdecl(TSharedRef<SceneOutliner::ITreeItem,0>),TBaseDelegate<void,AActor * __ptr64> >::ExecuteIfSafe(TSharedRef<SceneOutliner::ITreeItem,0> <Params_0>) Line 1016	C++
 	UE4Editor-SceneOutliner.dll!TBaseDelegate<void,TSharedRef<SceneOutliner::ITreeItem,0> >::ExecuteIfBound(TSharedRef<SceneOutliner::ITreeItem,0> <Params_0>) Line 609	C++
 	UE4Editor-SceneOutliner.dll!SceneOutliner::SSceneOutliner::OnOutlinerTreeSelectionChanged(TSharedPtr<SceneOutliner::ITreeItem,0> TreeItem, ESelectInfo::Type SelectInfo) Line 1776	C++
 	UE4Editor-SceneOutliner.dll!TBaseSPMethodDelegateInstance<0,SceneOutliner::SSceneOutliner,0,TTypeWrapper<void> __cdecl(TSharedPtr<SceneOutliner::ITreeItem,0>,enum ESelectInfo::Type)>::Execute(TSharedPtr<SceneOutliner::ITreeItem,0> <Params_0>, ESelectInfo::Type <Params_1>) Line 318	C++
 	UE4Editor-SceneOutliner.dll!TBaseSPMethodDelegateInstance<0,SceneOutliner::SSceneOutliner,0,void __cdecl(TSharedPtr<SceneOutliner::ITreeItem,0>,enum ESelectInfo::Type)>::ExecuteIfSafe(TSharedPtr<SceneOutliner::ITreeItem,0> <Params_0>, ESelectInfo::Type <Params_1>) Line 425	C++
 	UE4Editor-SceneOutliner.dll!TBaseDelegate<void,TSharedPtr<SceneOutliner::ITreeItem,0>,enum ESelectInfo::Type>::ExecuteIfBound(TSharedPtr<SceneOutliner::ITreeItem,0> <Params_0>, ESelectInfo::Type <Params_1>) Line 609	C++
 	UE4Editor-SceneOutliner.dll!SListView<TSharedPtr<SceneOutliner::ITreeItem,0> >::Private_SignalSelectionChanged(ESelectInfo::Type SelectInfo) Line 638	C++
 	UE4Editor-SceneOutliner.dll!STableRow<TSharedPtr<SceneOutliner::ITreeItem,0> >::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 449	C++
 	UE4Editor-SceneOutliner.dll!SceneOutliner::SSceneOutlinerTreeRow::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 211	C++
 	UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent::__l8::<lambda>(const FArrangedWidget & TargetWidget, const FPointerEvent & Event) Line 5010	C++
 	UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,FReply <lambda>(const FArrangedWidget &, const FPointerEvent &) >(FSlateApplication * ThisApplication, FEventRouter::FToLeafmostPolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::__l8::FReply <lambda>(const FArrangedWidget &, const FPointerEvent &) & Lambda) Line 215	C++
 	UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent(FWidgetPath & WidgetsUnderPointer, FPointerEvent & PointerEvent) Line 4999	C++
 	UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent(FPointerEvent & MouseEvent) Line 5462	C++
 	UE4Editor-Slate.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const FVector2D CursorPos) Line 5439	C++
 	UE4Editor-Core.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 1652	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 2071	C++
 	UE4Editor-Core.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 814	C++
 	UE4Editor-Core.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 678	C++
 	[External Code]	
 	UE4Editor-Core.dll!FWindowsPlatformMisc::PumpMessages(bool bFromMainLoop) Line 951	C++
 	UE4Editor.exe!FEngineLoop::Tick() Line 2811	C++
 	UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 152	C++
 	UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 191	C++
 	[External Code]	

Have Comments or More Details?

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

0
Login to Vote

Cannot Reproduce
ComponentUE - Foundation - Core
Affects Versions4.14.1
Target Fix4.15
CreatedDec 9, 2016
ResolvedDec 12, 2016
UpdatedApr 27, 2018