Description

Calling SGridPanel::SetRowFill on an actor's BeginPlay causes the editor to crash with the callstack provided

The reporter mentioned SetRowFill uses if() statement where SetColumnFill uses while() statement - changing SetRowFill to SetColumnFill in repro steps does not cause a crash

Regression:
No - same behavior occurs in 4.16.3 (CL 3561208)

Steps to Reproduce
  1. Open UE4 Editor (any project)
  2. Add code based on Actor (MyActor)
  3. Add the following to AMyActor::BeginPlay()
    	TSharedPtr<SGridPanel> GridPanel;
    	SAssignNew(GridPanel, SGridPanel);
    	GridPanel->SetRowFill(19, 10.0f);
    
  4. Compile
  5. Add instance of MyActor to the viewport
  6. PIE

Result:
Editor crashes when callstack

Expected:
Code is executed and PIE runs as expected

Callstack
LoginId:7d9b4a73450f62fbf87909b7a18f60d7
EpicAccountId:c807849e05a0413d99e379f2802cae9c

Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:D:\Build\++UE4+Release-4.16+Compile\Sync\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 633] 
Array index out of bounds: 19 from an array of size 1


UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
UE4Editor_Slate!SGridPanel::SetRowFill() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\widgets\layout\sgridpanel.cpp:277]
UE4Editor_MyProject2_6209!AMyActor::BeginPlay() [c:\users\doug.wilson\documents\unreal projects\myproject2\source\myproject2\myactor.cpp:20]
UE4Editor_Engine!AActor::DispatchBeginPlay() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\engine\private\actor.cpp:3104]
UE4Editor_Engine!AWorldSettings::NotifyBeginPlay() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\engine\private\worldsettings.cpp:187]
UE4Editor_Engine!AGameStateBase::HandleBeginPlay() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\engine\private\gamestatebase.cpp:177]
UE4Editor_Engine!UWorld::BeginPlay() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\engine\private\world.cpp:3443]
UE4Editor_Engine!UGameInstance::StartPlayInEditorGameInstance() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\engine\private\gameinstance.cpp:338]
UE4Editor_UnrealEd!UEditorEngine::CreatePIEGameInstance() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\unrealed\private\playlevel.cpp:3427]
UE4Editor_UnrealEd!UEditorEngine::PlayInEditor() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\unrealed\private\playlevel.cpp:2515]
UE4Editor_UnrealEd!UEditorEngine::StartQueuedPlayMapRequest() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\unrealed\private\playlevel.cpp:1217]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\unrealed\private\editorengine.cpp:1525]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:386]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3119]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32
ntdll

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

1
Login to Vote

Fixed
ComponentTools
Affects Versions4.16.34.17
Target Fix4.18
Fix Commit3613030
Main Commit3621569
Release Commit3643070
CreatedAug 22, 2017
ResolvedAug 28, 2017
UpdatedApr 27, 2018