Work around an ARM64 compiler crash by splitting a coroutine up (#10306)

Built and tested in PackageES

(cherry picked from commit fd06b0ce60)
This commit is contained in:
Dustin L. Howett 2021-06-01 11:56:28 -05:00 committed by Dustin Howett
parent 89ca2ae05f
commit f3ca1ed136
No known key found for this signature in database
GPG key ID: 0719BB71B334EE77
2 changed files with 10 additions and 0 deletions

View file

@ -1023,7 +1023,15 @@ winrt::fire_and_forget IslandWindow::SummonWindow(Remoting::SummonWindowBehavior
{
// On the foreground thread:
co_await winrt::resume_foreground(_rootGrid.Dispatcher());
_summonWindowRoutineBody(args);
}
// Method Description:
// - As above.
// BODGY: ARM64 BUILD FAILED WITH fatal error C1001: Internal compiler error
// when this was part of the coroutine body.
void IslandWindow::_summonWindowRoutineBody(Remoting::SummonWindowBehavior args)
{
uint32_t actualDropdownDuration = args.DropdownDuration();
// If the user requested an animation, let's check if animations are enabled in the OS.
if (args.DropdownDuration() > 0)

View file

@ -111,6 +111,8 @@ protected:
bool _isQuakeWindow{ false };
void _enterQuakeMode();
void _summonWindowRoutineBody(winrt::Microsoft::Terminal::Remoting::SummonWindowBehavior args);
private:
// This minimum width allows for width the tabs fit
static constexpr long minimumWidth = 460L;