Description

Adding a custom User Defined Struct code class to a project causes the Editor to crash whenever a hot reload is performed on that project. Removing the custom User Defined Struct class allows hot reloads to complete successfully.

REGRESSION:
No

Steps to Reproduce
  1. Create a new Basic Code project.
  2. Open the project in the Editor.
  3. Add a new C++ class to the project that derives from UserDefinedStruct.

RESULT:
The Editor crashes while attempting to perform a hot reload after adding the new class. The Editor will also crash when performing any hot reload as long as the custom UserDefinedStruct class remains in the project, including when adding any additional code classes to the project.

EXPECTED:
The Editor continues to successfully complete hot reloads.

Callstack
Assertion failed: bPrepareCppStructOpsCompleted [File:D:\Main-Builds\Stream\Engine\Source\Runtime\CoreUObject\Public\UObject/Class.h] [Line: 1116] 
GetCppStructOps: PrepareCppStructOps() has not been called for class Default__MyUserDefinedStruct


UE4Editor_Core!FDebug::AssertFailed() [d:\main-builds\stream\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
UE4Editor_HotReload!FHotReloadModule::DoHotReloadInternal() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:914]
UE4Editor_HotReload!UE4Function_Private::TFunctionRefCaller<<lambda_845f9b2944b03bbc30be1e1f4a8d7f4b>,void __cdecl(TMap<FString,FString,FDefaultSetAllocator,TDefaultMapKeyFuncs<FString,FString,0> > const & __ptr64,bool,enum ECompilationResult::Type)>::Call() [d:\main-builds\stream\engine\source\runtime\core\public\templates\function.h:245]
UE4Editor_HotReload!FHotReloadModule::CheckForFinishedModuleDLLCompile() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:1916]
UE4Editor_HotReload!FHotReloadModule::RecompileModulesAsync() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:1551]
UE4Editor_HotReload!FHotReloadModule::RebindPackagesInternal() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:1163]
UE4Editor_HotReload!FHotReloadModule::RebindPackages() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:1107]
UE4Editor_GameProjectGeneration!GameProjectUtils::AddCodeToProject_Internal() [d:\main-builds\stream\engine\source\editor\gameprojectgeneration\private\gameprojectutils.cpp:3505]
UE4Editor_GameProjectGeneration!GameProjectUtils::AddCodeToProject() [d:\main-builds\stream\engine\source\editor\gameprojectgeneration\private\gameprojectutils.cpp:1105]
UE4Editor_GameProjectGeneration!SNewClassDialog::FinishClicked() [d:\main-builds\stream\engine\source\editor\gameprojectgeneration\private\snewclassdialog.cpp:1181]
UE4Editor_GameProjectGeneration!TBaseSPMethodDelegateInstance<0,SNewClassDialog,0,TTypeWrapper<void> __cdecl(void)>::Execute() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_GameProjectGeneration!TBaseSPMethodDelegateInstance<0,SNewClassDialog,0,void __cdecl(void)>::ExecuteIfSafe() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:433]
UE4Editor_AppFramework!SWizard::HandleFinishButtonClicked() [d:\main-builds\stream\engine\source\runtime\appframework\private\widgets\workflow\swizard.cpp:287]
UE4Editor_AppFramework!TMemberFunctionCaller<SWizard,FReply (__cdecl SWizard::*)(void) __ptr64>::operator()<>() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegateinstanceinterface.h:165]
UE4Editor_AppFramework!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SWizard,FReply (__cdecl SWizard::*)(void) __ptr64> >() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\tuple.h:134]
UE4Editor_AppFramework!TBaseSPMethodDelegateInstance<0,SWizard,0,FReply __cdecl(void)>::Execute() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:537]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\main-builds\stream\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:278]
UE4Editor_Slate!<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1>::operator()() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5013]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1> >() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:239]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5002]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5469]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5446]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\main-builds\stream\engine\source\runtime\core\private\windows\windowsapplication.cpp:1698]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\main-builds\stream\engine\source\runtime\core\private\windows\windowsapplication.cpp:2120]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\main-builds\stream\engine\source\runtime\core\private\windows\windowsapplication.cpp:867]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\main-builds\stream\engine\source\runtime\core\private\windows\windowsapplication.cpp:714]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\main-builds\stream\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:980]
UE4Editor!FEngineLoop::Tick() [d:\main-builds\stream\engine\source\runtime\launch\private\launchengineloop.cpp:3008]
UE4Editor!GuardedMain() [d:\main-builds\stream\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\main-builds\stream\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\main-builds\stream\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

0
Login to Vote

Fixed
ComponentUE - Foundation - Core
Affects Versions4.14.34.154.16
Target Fix4.16
Fix Commit3318919
Main Commit3345747
CreatedFeb 20, 2017
ResolvedFeb 23, 2017
UpdatedApr 27, 2018