Developer Notes

Editor now provides error message stating "Cannot add components that have "Within" markup" rather than crash

Description

Crash occurs when attempting to add an actor component c++ class to a game mode blueprint if the actor component is tagged with the Within="GameMode".

Found in 4.11.2 binary, reproduced in 4.10.4 binary.

Regression?

No, reproduced in 4.10.4 as well.

Steps to Reproduce

1. Open the editor
2. Create a new actor component C++ class
3. In the UCLASS() macro, add this line "Within=(GameMode), with GameMode being the name of your game mode class.
4. Compile
5. In the editor, create a blueprint based on your game mode
6. Open the game mode blueprint
7. Attempt to add your actor component C++ class to the game mode blueprint

Result: Editor crashes

Expected: No crash would occur and actor component would be added successfully.

Callstack
UE4Editor_CoreUObject!StaticAllocateObjectErrorTests() [uobjectglobals.cpp:1983]
UE4Editor_CoreUObject!StaticAllocateObject() [uobjectglobals.cpp:2022]
UE4Editor_CoreUObject!StaticConstructObject_Internal() [uobjectglobals.cpp:2788]
UE4Editor_Engine!NewObject<UActorComponent>() [uobjectglobals.h:1176]
UE4Editor_Engine!USimpleConstructionScript::CreateNode() [simpleconstructionscript.cpp:1124]
UE4Editor_Kismet!SSCSEditor::AddNewComponent() [sscseditor.cpp:4628]
UE4Editor_Kismet!SSCSEditor::PerformComboAddClass() [sscseditor.cpp:3977]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,SSCSEditor,0,UActorComponent * __ptr64 __cdecl() [delegateinstancesimpl_variadics.inl:321]
UE4Editor_UnrealEd!SComponentClassCombo::OnAddComponentSelectionChanged() [scomponentclasscombo.cpp:257]
UE4Editor_UnrealEd!TBaseSPMethodDelegateInstance<0,SComponentClassCombo,0,TTypeWrapper<void> __cdecl() [delegateinstancesimpl_variadics.inl:321]
UE4Editor_UnrealEd!TBaseSPMethodDelegateInstance<0,SComponentClassCombo,0,void __cdecl() [delegateinstancesimpl_variadics.inl:428]
UE4Editor_UnrealEd!TBaseDelegate<void,TSharedPtr<FComponentClassComboEntry,0>,enum ESelectInfo::Type>::ExecuteIfBound() [delegatesignatureimpl_variadics.inl:608]
UE4Editor_UnrealEd!SListView<TSharedPtr<FComponentClassComboEntry,0> >::Private_SignalSelectionChanged() [slistview.h:609]
UE4Editor_UnrealEd!SComboRow<TSharedPtr<FString,0> >::OnMouseButtonDown() [scombobox.h:57]
UE4Editor_Slate!<lambda_7097b900f0e4be30d80fb18f98c51ea0>::operator() [slateapplication.cpp:4459]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_7097b900f0e4be30d80fb18f98c51ea0> >() [slateapplication.cpp:214]
UE4Editor_Slate!FSlateApplication::RoutePointerDownEvent() [slateapplication.cpp:4448]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonDownEvent() [slateapplication.cpp:4406]
UE4Editor_Slate!FSlateApplication::OnMouseDown() [slateapplication.cpp:4340]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [windowsapplication.cpp:1353]
UE4Editor_Core!FWindowsApplication::DeferMessage() [windowsapplication.cpp:1732]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [windowsapplication.cpp:697]
UE4Editor_Core!FWindowsApplication::AppWndProc() [windowsapplication.cpp:619]
user32!<Unknown>
user32!<Unknown>
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [windowsplatformmisc.cpp:884]
UE4Editor!FEngineLoop::Tick() [launchengineloop.cpp:2611]
UE4Editor!GuardedMain() [launch.cpp:142]
UE4Editor!GuardedMainWrapper() [launchwindows.cpp:126]
UE4Editor!WinMain() [launchwindows.cpp:200]
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-29878 in the post.

0
Login to Vote

Fixed
ComponentUE - Gameplay - Components
Affects Versions4.11
Target Fix4.12
Fix Commit2981403
Main Commit3023490
Release Commit2981403
CreatedApr 25, 2016
ResolvedMay 17, 2016
UpdatedAug 10, 2023