Description

This report was logged due to a high volume of submitted crash reports. It occurs when opening a level where a deleted mesh as being used as foliage.

This is a regression. The crash does not occur in 4.15.3, instead it displays an error that the asset failed to load.

User Descriptions

  • I was trying to open my level in the new 4.16 after making a copy from the 4.15 version

Source Context

66       			}
   67       		}
   68       
   69       		return false;
   70       	}
   71       
   72       	/**
   73       	 * Removes all functions from this multi-cast delegate's invocation list that are bound to the specified UserObject.
   74       	 * Note that the order of the delegates may not be preserved!
   75       	 *
   76       	 * @param InUserObject The object to remove all delegates for.
   77       	 */
   78       	void RemoveAll( const void* InUserObject )
   79       	{
   80 ***** 		for (int32 InvocationListIndex = InvocationList.Num() - 1; InvocationListIndex >= 0; --InvocationListIndex)
   81       		{
   82       			FDelegateBase& DelegateBaseRef = InvocationList[InvocationListIndex];
   83       
   84       			IDelegateInstance* DelegateInstance = DelegateBaseRef.GetDelegateInstanceProtected();
   85       			if ((DelegateInstance != nullptr) && DelegateInstance->HasSameObject(InUserObject))
   86       			{
   87       				DelegateBaseRef.Unbind();
   88       			}
   89       		}
Steps to Reproduce
  1. Create blank project with starter content
  2. Create new Level and open it
  3. Add a box or landscape to the level.
  4. Add any mesh as Foliage and paint it on the box or landscape
  5. Save the map and assets
  6. Open any different level
  7. In the Content Browser, delete the mesh that was used as foliage. Choose "Force Delete".
  8. Re-open the first map

Result: Crash
Expected: Error message that the asset failed to load.

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

UE4Editor_Foliage!FMulticastDelegateBase<FWeakObjectPtr>::RemoveAll() [multicastdelegatebase.h:81]
UE4Editor_Foliage!AInstancedFoliageActor::RemoveFoliageType() [instancedfoliage.cpp:2094]
UE4Editor_Foliage!AInstancedFoliageActor::PostLoad() [instancedfoliage.cpp:2622]
UE4Editor_CoreUObject!UObject::ConditionalPostLoad() [obj.cpp:952]
UE4Editor_CoreUObject!UObject::PostLoadSubobjects() [obj.cpp:985]
UE4Editor_CoreUObject!UObject::ConditionalPostLoad() [obj.cpp:941]
UE4Editor_CoreUObject!EndLoad() [uobjectglobals.cpp:1535]
UE4Editor_CoreUObject!LoadPackageInternal() [uobjectglobals.cpp:1289]
UE4Editor_CoreUObject!LoadPackage() [uobjectglobals.cpp:1377]
UE4Editor_CoreUObject!ResolveName() [uobjectglobals.cpp:778]
UE4Editor_CoreUObject!StaticLoadObjectInternal() [uobjectglobals.cpp:865]
UE4Editor_CoreUObject!StaticLoadObject() [uobjectglobals.cpp:929]
UE4Editor_ContentBrowser!FAssetData::GetAsset() [assetdata.h:250]
UE4Editor_ContentBrowser!SContentBrowser::OnAssetsActivated() [scontentbrowser.cpp:1873]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SContentBrowser,0,TTypeWrapper<void> __cdecl() [delegateinstancesimpl.h:327]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SContentBrowser,0,void __cdecl() [delegateinstancesimpl.h:434]
UE4Editor_ContentBrowser!TBaseDelegate<void,TArray<FAssetData,FDefaultAllocator> const & __ptr64,enum EAssetTypeActivationMethod::Type>::ExecuteIfBound() [delegatesignatureimpl.inl:624]
UE4Editor_ContentBrowser!SAssetView::OnListMouseButtonDoubleClick() [sassetview.cpp:3755]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SAssetView,0,TTypeWrapper<void> __cdecl() [delegateinstancesimpl.h:327]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SAssetView,0,void __cdecl() [delegateinstancesimpl.h:434]
UE4Editor_ContentBrowser!TBaseDelegate<void,TSharedPtr<FAssetViewItem,0> >::ExecuteIfBound() [delegatesignatureimpl.inl:624]
UE4Editor_ContentBrowser!SListView<TSharedPtr<FAssetViewItem,0> >::Private_OnItemDoubleClicked() [slistview.h:815]
UE4Editor_ContentBrowser!STableRow<TSharedPtr<FAssetViewItem,0> >::OnMouseButtonDoubleClick() [stablerow.h:290]
UE4Editor_Slate!<lambda_eeb33fd1b480e3cad58a1531d90d2e14>::operator() [slateapplication.cpp:5460]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_eeb33fd1b480e3cad58a1531d90d2e14> >() [slateapplication.cpp:239]
UE4Editor_Slate!FSlateApplication::RoutePointerDoubleClickEvent() [slateapplication.cpp:5458]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonDoubleClickEvent() [slateapplication.cpp:5441]
UE4Editor_Slate!FSlateApplication::OnMouseDoubleClick() [slateapplication.cpp:5419]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [windowsapplication.cpp:1708]
UE4Editor_Core!FWindowsApplication::DeferMessage() [windowsapplication.cpp:2127]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [windowsapplication.cpp:867]
UE4Editor_Core!FWindowsApplication::AppWndProc() [windowsapplication.cpp:714]
user32!UserCallWinProcCheckWow()
user32!DispatchMessageWorker()
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [windowsplatformmisc.cpp:1009]
UE4Editor!FEngineLoop::Tick() [launchengineloop.cpp:3058]
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!BaseThreadInitThunk()
ntdll!RtlUserThreadStart()

Have Comments or More Details?

Head over to the existingAnswerHub thread and let us know what's up.

1
Login to Vote

Fixed
ComponentTools - Foliage
Affects Versions4.16
Target Fix4.16.2
Fix Commit3476060
CreatedMay 31, 2017
ResolvedJun 6, 2017
UpdatedApr 27, 2018