The child struct properties can't inherit the sparse data flag, as FStructurePropertyNode is already directly editing a block of struct memory.
#jira UE-140961
#preflight 61fa9368ad2ae6c3b75c1d66
#rb Mikko.Mononen
#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 18826037 in //UE5/Release-5.0/... via CL 18826067 via CL 18826480
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)
[CL 18826515 by jamie dale in ue5-main branch]
This makes an assumption the FObjectPropertyBase::GetExportPath() will continue to return the value in 'ClassName'ObjectPath format, but that seems very unlikely to change and is depended on elsewhere so this can be considered an acceptable risk.
Suggested by UDN: https://epicgames.lightning.force.com/lightning/r/Case/5004z00001ay3pbAAA/view
#rb paul.chipchase
#preflight 61efd42b8c16f8372245a8f2
[CL 18721203 by sebastian nordgren in ue5-main branch]
#rb Marc.Audy
#ROBOMERGE-AUTHOR: bob.tellez
#ROBOMERGE-SOURCE: CL 18574430 via CL 18574434 via CL 18574435 via CL 18574440 via CL 18574664 via CL 18574676 via CL 18574681
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)
[CL 18574694 by bob tellez in ue5-main branch]
#rb Marc.Audy
#ROBOMERGE-AUTHOR: bob.tellez
#ROBOMERGE-SOURCE: CL 18574430 via CL 18574434 via CL 18574435 via CL 18574440 via CL 18574664 via CL 18574676
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18574681 by bob tellez in ue5-release-engine-test branch]
This would try and get the value of the outer array property (for the inner array value) using FObjectBaseAddress::ObjectOrStruct as the start address, however for class sparse data FObjectBaseAddress::ObjectOrStruct was set to the CDO of the class that owns the sparse data, rather than the start of the sparse data itself. This resulted in a crash as it would try and read garbage from the CDO.
This change removes FObjectBaseAddress::ObjectOrStruct and FObjectBaseAddress::bIsStruct, in favor of storing FObjectBaseAddress::Object (if not editing a struct) and FObjectBaseAddress::StructAddress. FObjectBaseAddress::StructAddress always points to the thing that actually contains FObjectBaseAddress::BaseAddress, which allows the ImportText code to get the correct offset for the array property within the sparse data instance.
#jira
#rb Sebastian.Nordgren
#preflight 61a59b104f5d65edc3a8564b
#rnx
#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 18326295 via CL 18328452 via CL 18328534 via CL 18328607 via CL 18330452 via CL 18330516 via CL 18330630
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v895-18170469)
[CL 18330739 by jamie dale in ue5-main branch]
This would try and get the value of the outer array property (for the inner array value) using FObjectBaseAddress::ObjectOrStruct as the start address, however for class sparse data FObjectBaseAddress::ObjectOrStruct was set to the CDO of the class that owns the sparse data, rather than the start of the sparse data itself. This resulted in a crash as it would try and read garbage from the CDO.
This change removes FObjectBaseAddress::ObjectOrStruct and FObjectBaseAddress::bIsStruct, in favor of storing FObjectBaseAddress::Object (if not editing a struct) and FObjectBaseAddress::StructAddress. FObjectBaseAddress::StructAddress always points to the thing that actually contains FObjectBaseAddress::BaseAddress, which allows the ImportText code to get the correct offset for the array property within the sparse data instance.
#jira
#rb Sebastian.Nordgren
#preflight 61a59b104f5d65edc3a8564b
#rnx
#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 18326295 via CL 18328452 via CL 18328534 via CL 18328607 via CL 18330452 via CL 18330516
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18330630 by jamie dale in ue5-release-engine-test branch]
https://p4-swarm.epicgames.net/reviews/15934265
#rb MattK
#jira none
#ushell-cherrypick of 15934265 by swarm
#ushell-cherrypick of 16060267 by Martin.Sevigny
[CL 16063439 by Martin Sevigny in ue5-main branch]
This makes it possible to declare a UPROPERTY like so:
UPROPERTY(EditAnywhere, meta = (GetKeyOptions="GetValidItemKeys"))
TMap<FString, FString> MapOfItems;
and have the dropdown appear only on the key field.
#rb Lauren.Barnes
#fyi Vincent.Gauthier,Sebastian.Nordgren
#preflight 606229ea57aca40001ff1441
[CL 15855122 by Luke Thatcher in ue5-main branch]
The issue is that FPropertyHandleBase does not have a very long lifetime, so this instance was getting ref counted and deleted when trying to be used the next frame.
#robomerge Release-5.0-EarlyAccess
#jira UE-110463
#rb paul.chipchase
[CL 15711948 by sebastian nordgren in ue5-main branch]
Fixed PreviewSceneCustomization causing reset to default to be deferred.
#jira UE-109160
#rb lauren.barnes
[CL 15623076 by sebastian nordgren in ue5-main branch]
Added test actor to PropertyEditorTestObject.h to allow for testing actor things, like this GetOptions multiselection bug.
Fixed whitespace errors caused by mismerge.
#jira UE-109745
#rb paul.chipchase
[CL 15604138 by sebastian nordgren in ue5-main branch]