Properly handle the case when the console framebuffer could not be created.


svn path=/branches/ntvdm/; revision=60526
This commit is contained in:
Aleksandar Andrejevic 2013-10-04 21:16:58 +00:00
parent 3593b8c8ef
commit 0043c2f377

View file

@ -488,12 +488,22 @@ static VOID VgaChangeMode(VOID)
if (!(VgaGcRegisters[VGA_GC_MISC_REG] & VGA_GC_MISC_NOALPHA))
{
/* Enter new text mode */
if (!VgaEnterTextMode(&Resolution)) return;
if (!VgaEnterTextMode(&Resolution))
{
DisplayMessage(L"An unexpected VGA error occurred while switching into text mode.");
VdmRunning = FALSE;
return;
}
}
else
{
/* Enter 8-bit graphics mode */
if (!VgaEnterGraphicsMode(&Resolution)) return;
if (!VgaEnterGraphicsMode(&Resolution))
{
DisplayMessage(L"An unexpected VGA error occurred while switching into graphics mode.");
VdmRunning = FALSE;
return;
}
}
/* Trigger a full update of the screen */
@ -516,6 +526,12 @@ static VOID VgaUpdateFramebuffer(VOID)
+ VgaCrtcRegisters[VGA_CRTC_START_ADDR_LOW_REG];
DWORD ScanlineSize = (DWORD)VgaCrtcRegisters[VGA_CRTC_OFFSET_REG] * 2;
/*
* If console framebuffer is NULL, that means something went wrong
* earlier and this is the final display refresh.
*/
if (ConsoleFramebuffer == NULL) return;
/* Check if this is text mode or graphics mode */
if (VgaGcRegisters[VGA_GC_MISC_REG] & VGA_GC_MISC_NOALPHA)
{