The TextExportTransient can be specified as a property flag and object flag. Behavior is inconsistent: there are many ways in which an object marked TextExportTransient can still be part of the text export:
UPROPERTY(VisibleAnywhere, TextExportTransient) UMyTextExportTransientObject* MyTextExportTransientProperty; UPROPERTY(VisibleAnywhere, TextExportTransient) TArray<UMyTextExportTransientObject*> MyTextExportTransientArray;
void ExportProperties(...)
do not check whether the referenced object is marked TextExportTransient.
UPROPERTY(VisibleAnywhere, Instanced) UMyTextExportTransientObject* MyInstancedObject; UPROPERTY(VisibleAnywhere, Instanced) TArray<UMyTextExportTransientObject*> MyInstancedArray;
Try out the following combinations of UObject and UPROPERTY tags:
Try the above combinations while following these steps:
Expected: Ideally in none of the cases where either the object or the property is TextExportTransient is the object exported in any way (not with Begin Object, nor path name of object).
Observed:
Not a crash. Callstack for reference when copying objects:
UnrealEditor-Engine.dll!UExporter::EmitBeginObject(FOutputDevice & Ar, UObject * Obj, unsigned int PortFlags) Line 481 C++ UnrealEditor-UnrealEd.dll!UObjectExporterT3D::ExportText(const FExportObjectInnerContext * Context, UObject * Object, const wchar_t * Type, FOutputDevice & Ar, FFeedbackContext * Warn, unsigned int PortFlags) Line 320 C++ UnrealEditor-Engine.dll!UExporter::ExportToOutputDevice(const FExportObjectInnerContext * Context, UObject * Object, UExporter * InExporter, FOutputDevice & Out, const wchar_t * FileType, int Indent, unsigned int PortFlags, bool bInSelectedOnly, UObject * ExportRootScope) Line 201 C++ > UnrealEditor-Engine.dll!UExporter::ExportObjectInner(const FExportObjectInnerContext * Context, UObject * Object, FOutputDevice & Ar, unsigned int PortFlags) Line 602 C++ UnrealEditor-UnrealEd.dll!ULevelExporterT3D::ExportText(const FExportObjectInnerContext * Context, UObject * Object, const wchar_t * Type, FOutputDevice & Ar, FFeedbackContext * Warn, unsigned int PortFlags) Line 585 C++ UnrealEditor-Engine.dll!UExporter::ExportToOutputDevice(const FExportObjectInnerContext * Context, UObject * Object, UExporter * InExporter, FOutputDevice & Out, const wchar_t * FileType, int Indent, unsigned int PortFlags, bool bInSelectedOnly, UObject * ExportRootScope) Line 201 C++ UnrealEditor-UnrealEd.dll!UUnrealEdEngine::CopyActors(const TArray<AActor *,TSizedDefaultAllocator<32>> & InActorsToCopy, UWorld * InWorld, FString * DestinationData) Line 169 C++ UnrealEditor-UnrealEd.dll!UUnrealEdEngine::edactCopySelected(UWorld * InWorld, FString * DestinationData) Line 110 C++ UnrealEditor-UnrealEd.dll!UEditorEngine::CopySelectedActorsToClipboard(UWorld * InWorld, const bool bShouldCut, const bool bIsMove, bool bWarnAboutReferences, FString * DestinationData) Line 3355 C++ UnrealEditor-UnrealEd.dll!UUnrealEdEngine::Exec_Edit(UWorld * InWorld, const wchar_t * Str, FOutputDevice & Ar) Line 1592 C++ UnrealEditor-UnrealEd.dll!UUnrealEdEngine::Exec(UWorld * InWorld, const wchar_t * Stream, FOutputDevice & Ar) Line 718 C++ UnrealEditor-LevelEditor.dll!FLevelEditorActionCallbacks::ExecuteExecCommand(FString Command) Line 2034 C++ [Inline Frame] UnrealEditor-LevelEditor.dll!Invoke(void(*)(FString) &) Line 47 C++ UnrealEditor-LevelEditor.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int,0>,FString>::ApplyAfter<void (__cdecl*const &)(FString)>(void(*)(FString) & Func) Line 310 C++ UnrealEditor-LevelEditor.dll!TBaseStaticDelegateInstance<void __cdecl(void),FDefaultDelegateUserPolicy,FString>::ExecuteIfSafe() Line 779 C++ [Inline Frame] UnrealEditor-Slate.dll!TDelegate<void __cdecl(void),FDefaultDelegateUserPolicy>::ExecuteIfBound() Line 635 C++ UnrealEditor-Slate.dll!FUIAction::Execute() Line 139 C++
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-215669 in the post.
0 |
Component | UE - Gameplay - Blueprint |
---|---|
Affects Versions | 5.4, 5.3 |
Target Fix | 5.5 |
Created | May 23, 2024 |
---|---|
Updated | Jun 3, 2024 |