Description

The editor will crash when clicking on the Material Name selection box a second time. It appears this triggers another selection change with a null input, which crashes the editor.

Steps to Reproduce
  1. Open a skeletal mesh
  2. In the asset details panel go to Sampling > Regions
  3. Add an array element if there isn't already one
  4. Add an element to the Material Filters
  5. Choose a material from the drop down list for Material Name
  6. Click on the drop down list again

RESULT

The editor will crash

Callstack

UnrealEditor-Persona-Win64-Debug.dll!FNiagaraSkeletalMeshRegionMaterialFilterDetails::HandleMaterialNameComboBoxSelectionChanged(TSharedPtr<FName,1> StringItem, ESelectInfo::Type SelectInfo)
UnrealEditor-Persona-Win64-Debug.dll!FNiagaraSkeletalMeshRegionMaterialFilterDetails::HandleMaterialNameComboBoxSelectionChanged(TSharedPtr<FName,1> StringItem, ESelectInfo::Type SelectInfo)
UnrealEditor-Persona-Win64-Debug.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter<void (__cdecl FNiagaraSkeletalMeshRegionMaterialFilterDetails::const &)(TSharedPtr<FName,1>,enum ESelectInfo::Type),FNiagaraSkeletalMeshRegionMaterialFilterDetails * &,TSharedPtr<FName,1> &,enum ESelectInfo::Type &>(void(FNiagaraSkeletalMeshRegionMaterialFilterDetails::)(TSharedPtr<FName,1>, ESelectInfo::Type) & Func, FNiagaraSkeletalMeshRegionMaterialFilterDetails * & <Args_0>, TSharedPtr<FName,1> & <Args_1>, ESelectInfo::Type & <Args_2>)
UnrealEditor-Persona-Win64-Debug.dll!TBaseSPMethodDelegateInstance<0,FNiagaraSkeletalMeshRegionMaterialFilterDetails,1,void __cdecl(TSharedPtr<FName,1>,enum ESelectInfo::Type),FDefaultDelegateUserPolicy>::ExecuteIfSafe(TSharedPtr<FName,1> <Params_0>, ESelectInfo::Type <Params_1>)
UnrealEditor-Persona-Win64-Debug.dll!TDelegate<void __cdecl(TSharedPtr<FName,1>,enum ESelectInfo::Type),FDefaultDelegateUserPolicy>::ExecuteIfBound<void,0>(TSharedPtr<FName,1> <Params_0>, ESelectInfo::Type <Params_1>)
UnrealEditor-Persona-Win64-Debug.dll!SComboBox<TSharedPtr<FName,1>>::OnSelectionChanged_Internal(TSharedPtr<FName,1> ProposedSelection, ESelectInfo::Type SelectInfo)
UnrealEditor-Persona-Win64-Debug.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter<void (__cdecl SComboBox<TSharedPtr<FName,1>>::const &)(TSharedPtr<FName,1>,enum ESelectInfo::Type),SComboBox<TSharedPtr<FName,1>> * &,TSharedPtr<FName,1> &,enum ESelectInfo::Type &>(void(SComboBox<TSharedPtr<FName,1>>::)(TSharedPtr<FName,1>, ESelectInfo::Type) & Func, SComboBox<TSharedPtr<FName,1>> * & <Args_0>, TSharedPtr<FName,1> & <Args_1>, ESelectInfo::Type & <Args_2>)
UnrealEditor-Persona-Win64-Debug.dll!TBaseSPMethodDelegateInstance<0,SComboBox<TSharedPtr<FName,1>>,1,void __cdecl(TSharedPtr<FName,1>,enum ESelectInfo::Type),FDefaultDelegateUserPolicy>::ExecuteIfSafe(TSharedPtr<FName,1> <Params_0>, ESelectInfo::Type <Params_1>)
UnrealEditor-Persona-Win64-Debug.dll!TDelegate<void __cdecl(TSharedPtr<FName,1>,enum ESelectInfo::Type),FDefaultDelegateUserPolicy>::ExecuteIfBound<void,0>(TSharedPtr<FName,1> <Params_0>, ESelectInfo::Type <Params_1>)
UnrealEditor-Persona-Win64-Debug.dll!SListView<TSharedPtr<FName,1>>::Private_SignalSelectionChanged(ESelectInfo::Type SelectInfo)
UnrealEditor-Persona-Win64-Debug.dll!SListView<TSharedPtr<FName,1>>::UpdateSelectionSet()
UnrealEditor-Slate-Win64-Debug.dll!STableViewBase::Tick(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime)
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled)
UnrealEditor-Slate-Win64-Debug.dll!SBox::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled)
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled)
UnrealEditor-SlateCore-Win64-Debug.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled)
UnrealEditor-Slate-Win64-Debug.dll!SBorder::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled)
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled)
UnrealEditor-SlateCore-Win64-Debug.dll!FSlateWindowElementList::FDeferredPaint::ExecutePaint(int LayerId, FSlateWindowElementList & OutDrawElements, const FSlateRect & MyCullingRect)
UnrealEditor-SlateCore-Win64-Debug.dll!FSlateWindowElementList::PaintDeferred(int LayerId, const FSlateRect & MyCullingRect)
UnrealEditor-SlateCore-Win64-Debug.dll!SWindow::PaintWindow(double CurrentTime, float DeltaTime, FSlateWindowElementList & OutDrawElements, const FWidgetStyle & InWidgetStyle, bool bParentEnabled)
UnrealEditor-Slate-Win64-Debug.dll!FSlateApplication::DrawWindowAndChildren(const TSharedRef<SWindow,1> & WindowToDraw, FDrawWindowArgs & DrawWindowArgs)
UnrealEditor-Slate-Win64-Debug.dll!FSlateApplication::DrawWindowAndChildren(const TSharedRef<SWindow,1> & WindowToDraw, FDrawWindowArgs & DrawWindowArgs)
UnrealEditor-Slate-Win64-Debug.dll!FSlateApplication::DrawWindowAndChildren(const TSharedRef<SWindow,1> & WindowToDraw, FDrawWindowArgs & DrawWindowArgs)
UnrealEditor-Slate-Win64-Debug.dll!FSlateApplication::PrivateDrawWindows(TSharedPtr<SWindow,1> DrawOnlyThisWindow)
UnrealEditor-Slate-Win64-Debug.dll!FSlateApplication::DrawWindows()
UnrealEditor-Slate-Win64-Debug.dll!FSlateApplication::TickAndDrawWidgets(float DeltaTime)
UnrealEditor-Slate-Win64-Debug.dll!FSlateApplication::Tick(ESlateTickType TickType)
UnrealEditor-Win64-Debug.exe!FEngineLoop::Tick()

Have Comments or More Details?

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

1
Login to Vote

Fixed
ComponentUE - Niagara
Affects Versions5.1
Target Fix5.1
Fix Commit21921078
Main Commit21921078
Release Commit21922917
CreatedMar 16, 2022
ResolvedSep 9, 2022
UpdatedSep 19, 2022