Description

If the values of the elements in a Tmap are altered for a Tmap that is using a custom struct, the editor will crash on compile.

Steps to Reproduce
  1. Open the editor
  2. Create a new struct
  3. Add two members
  4. Save
  5. Create new actor blueprint
  6. Create a new Tmap based on the custom struct that was made
  7. Set the other value to an integer
  8. Add an element to the tmap
  9. Change the values in the tmap element to anything other than the default (meaning the struct values in the element)
  10. Add an element to the tmap
  11. Change the values in the tmap element to anything other than the default (meaning the struct values in the element)
  12. Compile

Result: The editor crashes when the blueprint in compiled
Expected: The blueprint would compile and accept the changes to the default values in the Tmap

Callstack
Assertion failed: CanWriteValueWithoutIdentifier() [File:D:\Build\++UE4+Release-4.16+Compile\Sync\Engine\Source\Runtime\Json\Public\Serialization/JsonWriter.h] [Line: 133] 



UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
UE4Editor_Kismet!TJsonWriter<wchar_t,TCondensedJsonPrintPolicy<wchar_t> >::WriteValue<double>() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\json\public\serialization\jsonwriter.h:134]
UE4Editor_Kismet!FJsonSerializer::Serialize<wchar_t,TCondensedJsonPrintPolicy<wchar_t> >() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\json\public\serialization\jsonserializer.h:279]
UE4Editor_Kismet!FJsonSerializer::Serialize<wchar_t,TCondensedJsonPrintPolicy<wchar_t> >() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\json\public\serialization\jsonserializer.h:103]
UE4Editor_Kismet!BlueprintSearchMetaDataHelpers::SaveVariableDescriptionToJson() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\kismet\private\findinblueprintmanager.cpp:680]
UE4Editor_Kismet!FFindInBlueprintSearchManager::GatherBlueprintSearchMetadata() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\kismet\private\findinblueprintmanager.cpp:1626]
UE4Editor_Kismet!FFindInBlueprintSearchManager::AddOrUpdateBlueprintSearchMetadata() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\kismet\private\findinblueprintmanager.cpp:1750]
UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:783]
UE4Editor_Kismet!FBlueprintEditor::Compile() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\kismet\private\blueprinteditor.cpp:3292]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl(void)>::Execute() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:434]
UE4Editor_Slate!FUICommandList::ExecuteAction() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:97]
UE4Editor_Slate!SToolBarButtonBlock::OnClicked() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\multibox\stoolbarbuttonblock.cpp:305]
UE4Editor_Slate!TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void) __ptr64>::operator()<>() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegateinstanceinterface.h:165]
UE4Editor_Slate!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void) __ptr64> >() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\templates\tuple.h:497]
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl(void)>::Execute() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:537]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:278]
UE4Editor_Slate!<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1>::operator()() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5049]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1> >() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:239]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5038]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5515]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5495]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:1704]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:2127]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:867]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:714]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:1009]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3058]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32
ntdll

Have Comments or More Details?

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

3
Login to Vote

Cannot Reproduce
CreatedJun 27, 2017
ResolvedJun 27, 2017
UpdatedApr 27, 2018