Description

Declaring a TMap with an FIntVector key (ex: TMap<FIntVector, int32>) will cause the editor to crash when adding an element to the map.

Steps to Reproduce
  1. Open UE4 Editor
  2. Add code to project based on Actor (MyActor)
  3. Add the following to MyActor.h
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
    	TMap<FIntVector, int32> Blocks;
    
  4. Compile
  5. In the editor, create blueprint based on MyActor
  6. Open Blueprint and click the plus button next to Blocks

Result:
Editor crashes with provided callstack

Expected:
TMap element added without crash

Callstack
UE4Editor_CoreUObject!UScriptStruct::GetStructTypeHash() [class.cpp:2332]
UE4Editor_CoreUObject!FScriptSet::Rehash() [set.h:1430]
UE4Editor_CoreUObject!UMapProperty::CopyValuesInternal() [propertymap.cpp:708]
UE4Editor_CoreUObject!FObjectInitializer::InitProperties() [uobjectglobals.cpp:3119]
UE4Editor_CoreUObject!FObjectInitializer::PostConstructInit() [uobjectglobals.cpp:2834]
UE4Editor_CoreUObject!FObjectInitializer::~FObjectInitializer() [uobjectglobals.cpp:2745]
UE4Editor_CoreUObject!StaticConstructObject_Internal() [uobjectglobals.cpp:3271]
UE4Editor_CoreUObject!FDuplicateDataWriter::GetDuplicatedObject() [duplicatedatawriter.cpp:161]
UE4Editor_CoreUObject!FDuplicateDataWriter::operator<<() [duplicatedatawriter.cpp:67]
UE4Editor_Engine!operator<<() [array.h:1120]
UE4Editor_Engine!ULevel::Serialize() [level.cpp:353]
UE4Editor_CoreUObject!StaticDuplicateObjectEx() [uobjectglobals.cpp:2090]
UE4Editor_CoreUObject!StaticDuplicateObject() [uobjectglobals.cpp:1996]
UE4Editor_UnrealEd!ObjectTools::DuplicateSingleObject() [objecttools.cpp:500]
UE4Editor_UnrealEd!SaveWorld() [filehelpers.cpp:536]
UE4Editor_UnrealEd!FEditorFileUtils::SaveMap() [filehelpers.cpp:2311]
UE4Editor_UnrealEd!SaveAsImplementation() [filehelpers.cpp:912]
UE4Editor_UnrealEd!FEditorFileUtils::SaveLevelAs() [filehelpers.cpp:1041]
UE4Editor_LevelEditor!FLevelEditorActionCallbacks::SaveAs() [leveleditoractions.cpp:390]
UE4Editor_LevelEditor!TBaseStaticDelegateInstance<void __cdecl() [delegateinstancesimpl.h:1027]
UE4Editor_Slate!FUICommandList::ExecuteAction() [uicommandlist.cpp:97]
UE4Editor_Slate!SMenuEntryBlock::OnClicked() [smenuentryblock.cpp:1041]
UE4Editor_Slate!SMenuEntryBlock::OnMenuItemButtonClicked() [smenuentryblock.cpp:1001]
UE4Editor_Slate!TMemberFunctionCaller<SMenuEntryBlock,FReply() [delegateinstanceinterface.h:165]
UE4Editor_Slate!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SMenuEntryBlock,FReply() [tuple.h:134]
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SMenuEntryBlock,0,FReply __cdecl() [delegateinstancesimpl.h:327]
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() [delegatesignatureimpl.inl:537]
UE4Editor_Slate!SButton::OnMouseButtonUp() [sbutton.cpp:278]
UE4Editor_Slate!SMenuEntryButton::OnMouseButtonUp() [smenuentryblock.cpp:399]
UE4Editor_Slate!<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1>::operator() [slateapplication.cpp:5075]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1> >() [slateapplication.cpp:238]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [slateapplication.cpp:5064]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [slateapplication.cpp:5531]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [slateapplication.cpp:5508]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [windowsapplication.cpp:1698]
UE4Editor_Core!FWindowsApplication::DeferMessage() [windowsapplication.cpp:2120]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [windowsapplication.cpp:867]
UE4Editor_Core!FWindowsApplication::AppWndProc() [windowsapplication.cpp:714]
user32!<Unknown>
user32!<Unknown>
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [windowsplatformmisc.cpp:980]
UE4Editor!FEngineLoop::Tick() [launchengineloop.cpp:2977]
UE4Editor!GuardedMain() [launch.cpp:166]
UE4Editor!GuardedMainWrapper() [launchwindows.cpp:134]
UE4Editor!WinMain() [launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [exe_common.inl:264]
kernel32!<Unknown>
ntdll!<Unknown>

Have Comments or More Details?

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

1
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Affects Versions4.15
Target Fix4.16
Fix Commit3376961
Main Commit3380073
CreatedMar 21, 2017
ResolvedApr 3, 2017
UpdatedApr 27, 2018