Shutdown crash in TransBuffer

Hi,
I’m having a similar issue with Trans buffer when stopping a PIE.
I’m still on UE 4.5, but looked quickly through code changes on github and I don’t think this behavior changed since.

I’m working on the c++ side, and changing properties on more than 1 actor spawned dynamically from code triggers the issue.

Here is my repro:

  1. start PIE
  2. from C++ code, spawn several actors
  3. change a bool property value on at least 2 of the actors through the UE editor property window
    (Note: it doesn’t complain in EndPlayMap() if only 1 actor is modified)
  4. stop PIE
    => GC warning / crash

I tried spawning the actors without ‘RF_Transactional’ flag,
or marking the bool UProperty with ‘NonTransactional’ flag,
but it doesn’t fix the issue.

Looking at source code, in SPropertyEditorBool::OnCheckStateChanged(), it doesn’t pass down the property transactional flag.
Maybe it should pass down PropertyHandle->GetProperty()->HasAllPropertyFlags(CPF_NonTransactional) to PropertyHandle->SetValue() ?

If this is the way to solve the issue, this change might have to be mirrored to other types of properties.

Cheers,

Max