Description

This is a common crash affecting users on Windows and Linux. It also appears related to an older Mac crash (UE-23779). Users have not provided any new descriptions.

Source Context

  959       	void RemoveDelegateInstance( FDelegateHandle Handle )
  960       	{
  961       		const TInvocationList& LocalInvocationList = GetInvocationList();
  962       
  963       		for (int32 InvocationListIndex = 0; InvocationListIndex < LocalInvocationList.Num(); ++InvocationListIndex)
  964       		{
  965       			// InvocationList is const, so we const_cast to be able to unbind the entry
  966       			// TODO: This is horrible, can we get the base class to do it?
  967       			FDelegateBase& DelegateBase = const_cast<FDelegateBase&>(LocalInvocationList[InvocationListIndex]);
  968       
  969 ***** 			IDelegateInstance* DelegateInstanceInterface = Super::GetDelegateInstanceProtectedHelper(DelegateBase);
  970       			if ((DelegateInstanceInterface != nullptr) && DelegateInstanceInterface->GetHandle() == Handle)
  971       			{
  972       				DelegateBase.Unbind();
  973       
  974       				break; // each delegate binding has a unique handle, so once we find it, we can stop
  975       			}
  976       		}
  977       
  978       		CompactInvocationList();
  979       	}
  980       };
Steps to Reproduce

repro steps currently unknown

Callstack
Access violation - code c0000005 (first/second chance not available)

UE4Editor_ClassViewer!TBaseMulticastDelegate<void>::RemoveDelegateInstance() [delegatesignatureimpl.inl:970]
UE4Editor_ClassViewer!FClassHierarchy::~FClassHierarchy() [sclassviewer.cpp:1655]
UE4Editor_ClassViewer!SharedPointerInternals::TReferenceControllerWithDeleter<FClassHierarchy,SharedPointerInternals::DefaultDeleter<FClassHierarchy> >::DestroyObject() [sharedpointerinternals.h:110]
UE4Editor_ClassViewer!FClassViewerModule::ShutdownModule() [classviewermodule.cpp:80]
UE4Editor_Core!FModuleManager::UnloadModule() [modulemanager.cpp:565]
UE4Editor_Core!FModuleManager::UnloadModulesAtShutdown() [modulemanager.cpp:692]
UE4Editor!FEngineLoop::Exit() [launchengineloop.cpp:2757]
UE4Editor!GuardedMain() [launch.cpp:177]
UE4Editor!GuardedMainWrapper() [launchwindows.cpp:134]
UE4Editor!WinMain() [launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [exe_common.inl:253]
kernel32!BaseThreadInitThunk()
ntdll!RtlUserThreadStart()

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-47264 in the post.

0
Login to Vote

Fixed
ComponentTools
Affects Versions4.104.114.124.134.144.154.16
Target Fix4.17
Fix Commit3553747
Main Commit3596628
Release Commit3553747
CreatedJul 14, 2017
ResolvedJul 25, 2017
UpdatedApr 27, 2018