Developer Notes

Cannot repro in 4.11

Description

I tried to debug. In:

for (int32 StackIndex = Stack.Num() - 1; StackIndex >= FirstStackIndexToRemove; --StackIndex)
{
	Stack[StackIndex]->Dismiss(); // <-- here
}

It crashes because Stack is empty but StackIndex is 0. This isn't the first iteration, I managed to breakpoint on the close brace of the loop with StackIndex == 1 and Stack was empty. Looks like the menu stack has two entries but closing entry 1 also removes entry 0 for some reason...

Steps to Reproduce

Open 4.11 QAGame
Click "File"
Click "Package Project"

Callstack
UE4Editor-Slate-Win64-Debug.dll!FMenuStack::DismissInternal(int FirstStackIndexToRemove) Line 579	C++
UE4Editor-Slate-Win64-Debug.dll!FMenuStack::DismissAll() Line 572	C++
UE4Editor-Slate-Win64-Debug.dll!FMenuStack::OnMenuContentLostFocus(const FWidgetPath & InFocussedPath) Line 668	C++
UE4Editor-Slate-Win64-Debug.dll!TBaseRawMethodDelegateInstance<0,FMenuStack,TTypeWrapper<void> __cdecl(FWidgetPath const & __ptr64)>::Execute(const FWidgetPath & <Params_0>) Line 551	C++
UE4Editor-Slate-Win64-Debug.dll!`anonymous namespace'::SMenuContentWrapper::OnFocusChanging(const FWeakWidgetPath & PreviousFocusPath, const FWidgetPath & NewWidgetPath) Line 114	C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::SetUserFocus(const unsigned int InUserIndex, const FWidgetPath & InFocusPath, const EFocusCause InCause) Line 2426	C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::SetAllUserFocus(const FWidgetPath & InFocusPath, const EFocusCause InCause) Line 2520	C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::ClearAllUserFocus(EFocusCause ReasonFocusIsChanging) Line 2312	C++
UE4Editor-SlateCore-Win64-Debug.dll!SWindow::OnIsActiveChanged(const FWindowActivateEvent & ActivateEvent) Line 1347	C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::ProcessWindowActivatedEvent(const FWindowActivateEvent & ActivateEvent) Line 5502	C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::OnWindowActivationChanged(const TSharedRef<FGenericWindow,0> & PlatformWindow, const EWindowActivation::Type ActivationType) Line 5425	C++
UE4Editor-Core-Win64-Debug.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 1499	C++
UE4Editor-Core-Win64-Debug.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,0> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 1712	C++
UE4Editor-Core-Win64-Debug.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 916	C++
UE4Editor-Core-Win64-Debug.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 617	C++
user32.dll!UserCallWinProcCheckWow()	Unknown
user32.dll!DispatchClientMessage()	Unknown
user32.dll!__fnDWORD()	Unknown
ntdll.dll!KiUserCallbackDispatcherContinue()	Unknown
user32.dll!ZwUserPeekMessage()	Unknown
user32.dll!PeekMessageW()	Unknown
avcuf64.dll!000000006f46ffe2()	Unknown
avcuf64.dll!000000006f41bfc4()	Unknown
0000000070410be2()	Unknown
UE4Editor-Core-Win64-Debug.dll!WinPumpMessages() Line 858	C++
UE4Editor-Core-Win64-Debug.dll!FWindowsPlatformMisc::PumpMessages(bool bFromMainLoop) Line 889	C++
UE4Editor-Win64-Debug.exe!FEngineLoop::Tick() Line 2604	C++
UE4Editor-Win64-Debug.exe!EngineTick() Line 52	C++
UE4Editor-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 145	C++
UE4Editor-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 189	C++
UE4Editor-Win64-Debug.exe!__scrt_common_main_seh() Line 264	C++
kernel32.dll!BaseThreadInitThunk()	Unknown
ntdll.dll!RtlUserThreadStart()	Unknown

Have Comments or More Details?

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

0
Login to Vote

Cannot Reproduce
ComponentUE - Editor - UI Systems - Slate
Affects Versions4.11
Target Fix4.11
Fix Commit2842339
Main Commit2857187
Release Commit2944583
CreatedJan 22, 2016
ResolvedJan 26, 2016
UpdatedJun 30, 2016