Description

If a DataTable Asset is created with a Row Structure that contains a member variable of type BodyInstance, the Editor will crash when attempting to open it while it has no rows. It will also crash when editing a populated DataTable and deselecting all rows.

The crash happens at [Engine\Source\Editor\DetailCustomizations\Private\BodyInstanceCustomization.cpp:218], in function FBodyInstanceCustomization::CustomizeChildren(). When no rows are selected in the DataTable Editor, detail customizations such as this should be able to handle IPropertyHandle::AccessRawData() returning an array containing a nullptr. Several other customizations simply skip all work when this happens, but this one calls check() on the pointers, causing the crash.

Steps to Reproduce

Test 1:

  • Open The Editor on any map
  • Create a Structure Asset and add a variable of type BodyInstance
  • Create a DataTable Asset and pick the structure above for the rows
  • Save both assets before continuing
  • Open the DataTable Asset. The Editor will crash.

Test 2:

  • Open The Editor on any map
  • Create a Structure Asset and leave it with the default boolean variable only
  • Create a DataTable Asset and pick the structure above for the rows
  • Open the DataTable Asset, create some rows, and select one of them
  • Edit the Structure Asset, add a variable of type BodyInstance
  • Edit the DataTable Asset, deselect all rows. The Editor will crash.

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Simulation - Physics - Editor
Affects Versions5.3.2
Target Fix5.5
CreatedApr 5, 2024
UpdatedApr 9, 2024