Editing property with InlineEditConditionToggle meta specifier causes the editor to crash.
Workaround:
Calling Super::PostEditChangeProperty after property changing code prevents crash from occurring.
USTRUCT() struct FTestStruct { GENERATED_BODY() UPROPERTY(EditAnywhere) int32 Prop; UPROPERTY(EditAnywhere, Meta = (InlineEditConditionToggle)) bool bEditConditionProp; UPROPERTY(EditAnywhere, Meta = (EditCondition = bEditConditionProp)) int32 OtherProp; };
#if WITH_EDITOR virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override { Super::PostEditChangeProperty(PropertyChangedEvent); for (FTestStruct& TestStruct : TestArray) { TestStruct.Prop = 1; } } #endif UPROPERTY(EditAnywhere) TArray<FTestStruct> TestArray;
Result:
The editor crashes with listed callstack
Expected:
Checkbox is updated and editor continues to run
MachineId:7156C35640F86204E61B8383F45DEE17 EpicAccountId:c807849e05a0413d99e379f2802cae9c Assertion failed: ContainerPtr [File:D:\Build\++UE4+Release-4.13+Compile\Sync\Engine\Source\Runtime\CoreUObject\Public\UObject\UnrealType.h] [Line: 303] UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\misc\outputdevice.cpp:421] UE4Editor_PropertyEditor!FPropertyEditor::SetEditConditionState() [d:\build\++ue4+release-4.13+compile\sync\engine\source\editor\propertyeditor\private\presentation\propertyeditor\propertyeditor.cpp:385] UE4Editor_PropertyEditor!TBaseSPMethodDelegateInstance<0,SEditConditionWidget,0,TTypeWrapper<void> __cdecl(enum ECheckBoxState)>::Execute() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:317] UE4Editor_PropertyEditor!TBaseSPMethodDelegateInstance<0,SEditConditionWidget,0,void __cdecl(enum ECheckBoxState)>::ExecuteIfSafe() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:424] UE4Editor_Slate!SCheckBox::ToggleCheckedState() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\widgets\input\scheckbox.cpp:293] UE4Editor_Slate!SCheckBox::OnMouseButtonUp() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\widgets\input\scheckbox.cpp:184] UE4Editor_Slate!<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1>::operator()() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4901] UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1> >() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:215] UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4890] UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5348] UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5328] UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:1584] UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:1930] UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:747] UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:669] user32 user32 UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:905] UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:2788] UE4Editor!GuardedMain() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\launch.cpp:156] UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:126] UE4Editor!WinMain() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:202] UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264] kernel32 ntdll
I am not able to find world outliner how to enable it?
Undefined sysmbol: typeinfo for AActor when cross-compile linux dedicated server on windows
How does TextureRenderTarget2D get TArray<uint8> type data?
How to achieve HLSL Multiple Render Target in Material blueprints?
How can i modify the param name in EQS node
Why does the REMOVE method of map container remove elements have memory leaks?
Delay nodes occasionally don't fire the "Completed" output in a nativized build
I can't open my map from the editor.
What method is used to fill polygonal regions when drawing spline mesh at run time?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-37029 in the post.