When using an FLinearColor variable in a data table and editing it using the color picker, clicking anywhere off of the color picker window will cause the editor to crash.
Error Message:
Assertion failed: (Index >= 0) & (Index < ArrayNum) [Link Removed] [Line: 804] Array index out of bounds: 0 from an array of size 0
Source Context:
337 { 338 Result = FPropertyAccess::Fail; 339 break; 340 } 341 } 342 } 343 344 if( Result != FPropertyAccess::Fail ) 345 { 346 UWorld* OldGWorld = nullptr; 347 348 bool bIsGameWorld = false; 349 // If the object we are modifying is in the PIE world, than make the PIE world the active 350 // GWorld. Assumes all objects managed by this property window belong to the same world. 351 ***** if (UPackage* ObjectPackage = (InObjects[0].Object ? InObjects[0].Object->GetOutermost() : nullptr)) 352 { 353 const bool bIsPIEPackage = ObjectPackage->HasAnyPackageFlags(PKG_PlayInEditor); 354 if (GUnrealEd && GUnrealEd->PlayWorld && bIsPIEPackage && !GIsPlayInEditorWorld) 355 { 356 OldGWorld = SetPlayInEditorWorld(GUnrealEd->PlayWorld); 357 bIsGameWorld = true; 358 } 359 } 360 /////////////// 361 362 // Send the values and assemble a list of pre/posteditchange values. 363 bool bNotifiedPreChange = false; 364 UObject *NotifiedObj = nullptr; 365 TArray< TMap<FString,int32> > ArrayIndicesPerObject; 366
Logs:
[Link Removed]
1. Open the editor
2. Create a new C++ class based on Actor
3. In the .h, above the UCLASS(), add this code:
USTRUCT()
struct FMyStruct : public FTableRowBase
{
GENERATED_USTRUCT_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FLinearColor ColorVariable;
};
4. Build the project in Visual Studio
5. In the editor, create a data table that inherits from your C++ struct
6. Open the data table and add 2 new rows
7. Open the color picker and select a color from the wheel
8. With the color picker open, click the unselected row
Result: Editor crashes.
Expected: No crash would occur.
UE4Editor_PropertyEditor!FPropertyValueImpl::ImportText() propertyhandleimpl.cpp:352 UE4Editor_PropertyEditor!FPropertyHandleBase::SetPerObjectValues() propertyhandleimpl.cpp:1886 UE4Editor_DetailCustomizations!FColorStructCustomization::OnColorPickerCancelled() colorstructcustomization.cpp:291 UE4Editor_DetailCustomizations!TBaseSPMethodDelegateInstance<0,FColorStructCustomization,0,TTypeWrapper<void> __cdecl() delegateinstancesimpl_variadics.inl:321 UE4Editor_AppFramework!SColorPicker::DiscardColor() scolorpicker.cpp:700 UE4Editor_AppFramework!SColorPicker::HandleParentWindowClosed() scolorpicker.cpp:1494 UE4Editor_AppFramework!TBaseSPMethodDelegateInstance<0,SColorPicker,0,TTypeWrapper<void> __cdecl() delegateinstancesimpl_variadics.inl:321 UE4Editor_AppFramework!TBaseSPMethodDelegateInstance<0,SColorPicker,0,void __cdecl() delegateinstancesimpl_variadics.inl:428 UE4Editor_SlateCore!SWindow::NotifyWindowBeingDestroyed() swindow.cpp:1155 UE4Editor_Slate!FSlateApplication::PrivateDestroyWindow() slateapplication.cpp:5798 UE4Editor_Slate!FSlateApplication::DestroyWindowsImmediately() slateapplication.cpp:2647 UE4Editor_Slate!FSlateApplication::RequestDestroyWindow() slateapplication.cpp:2102 UE4Editor_SlateCore!SWindow::RequestDestroyWindow() swindow.cpp:1140 UE4Editor_AppFramework!DestroyColorPicker() scolorpicker.cpp:1706 UE4Editor_PropertyEditor!SStructureDetailsView::SetStructureData() sstructuredetailsview.cpp:197 UE4Editor_DataTableEditor!SRowEditor::CleanBeforeChange() sroweditor.cpp:128 UE4Editor_DataTableEditor!SRowEditor::OnSelectionChanged() sroweditor.cpp:228 UE4Editor_DataTableEditor!SRowEditor::SelectRow() sroweditor.cpp:254 UE4Editor_DataTableEditor!TBaseSPMethodDelegateInstance<0,SRowEditor,0,void __cdecl() delegateinstancesimpl_variadics.inl:428 UE4Editor_DataTableEditor!FDataTableEditor::OnRowSelectionChanged() datatableeditor.cpp:385 UE4Editor_DataTableEditor!TBaseSPMethodDelegateInstance<0,FDataTableEditor,0,TTypeWrapper<void> __cdecl() delegateinstancesimpl_variadics.inl:321 UE4Editor_DataTableEditor!TBaseSPMethodDelegateInstance<0,FDataTableEditor,0,void __cdecl() delegateinstancesimpl_variadics.inl:428 UE4Editor_DataTableEditor!TBaseDelegate<void,TSharedPtr<FDataTableEditorRowListViewData,0>,enum ESelectInfo::Type>::ExecuteIfBound() delegatesignatureimpl_variadics.inl:608 UE4Editor_DataTableEditor!SListView<TSharedPtr<FDataTableEditorRowListViewData,0> >::Private_SignalSelectionChanged() slistview.h:618 UE4Editor_DataTableEditor!FDataTableEditor::SetHighlightedRow() datatableeditor.cpp:733 UE4Editor_DataTableEditor!FDataTableEditor::OnRowSelectionChanged() datatableeditor.cpp:383 UE4Editor_DataTableEditor!TBaseSPMethodDelegateInstance<0,FDataTableEditor,0,TTypeWrapper<void> __cdecl() delegateinstancesimpl_variadics.inl:321 UE4Editor_DataTableEditor!TBaseSPMethodDelegateInstance<0,FDataTableEditor,0,void __cdecl() delegateinstancesimpl_variadics.inl:428 UE4Editor_DataTableEditor!TBaseDelegate<void,TSharedPtr<FDataTableEditorRowListViewData,0>,enum ESelectInfo::Type>::ExecuteIfBound() delegatesignatureimpl_variadics.inl:608 UE4Editor_DataTableEditor!SListView<TSharedPtr<FDataTableEditorRowListViewData,0> >::Private_SignalSelectionChanged() slistview.h:618 UE4Editor_DataTableEditor!SListView<TSharedPtr<FDataTableEditorRowListViewData,0> >::OnMouseButtonDown() slistview.h:367 UE4Editor_Slate!<lambda_7097b900f0e4be30d80fb18f98c51ea0>::operator() slateapplication.cpp:4518 UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_7097b900f0e4be30d80fb18f98c51ea0> >() slateapplication.cpp:215 UE4Editor_Slate!FSlateApplication::RoutePointerDownEvent() slateapplication.cpp:4507 UE4Editor_Slate!FSlateApplication::ProcessMouseButtonDownEvent() slateapplication.cpp:4465 UE4Editor_Slate!FSlateApplication::OnMouseDown() slateapplication.cpp:4399 UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() windowsapplication.cpp:1518 UE4Editor_Core!FWindowsApplication::DeferMessage() windowsapplication.cpp:1850 UE4Editor_Core!FWindowsApplication::ProcessMessage() windowsapplication.cpp:745 UE4Editor_Core!FWindowsApplication::AppWndProc() windowsapplication.cpp:667 user32!<Unknown> user32!<Unknown> UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() windowsplatformmisc.cpp:903 UE4Editor!FEngineLoop::Tick() launchengineloop.cpp:2729 UE4Editor!GuardedMain() launch.cpp:148 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.