}\r
\r
if (EFI_ERROR (Status)) {\r
+ //\r
+ // Free GOP mode structure if it is not freed before\r
+ // VgaMiniPort does not need this structure any more\r
+ //\r
+ if (BiosVideoPrivate->GraphicsOutput.Mode != NULL) {\r
+ if (BiosVideoPrivate->GraphicsOutput.Mode->Info != NULL) {\r
+ FreePool (BiosVideoPrivate->GraphicsOutput.Mode->Info);\r
+ BiosVideoPrivate->GraphicsOutput.Mode->Info = NULL;\r
+ }\r
+ FreePool (BiosVideoPrivate->GraphicsOutput.Mode);\r
+ BiosVideoPrivate->GraphicsOutput.Mode = NULL;\r
+ }\r
+\r
//\r
// Neither VBE nor the standard 640x480 16 color VGA mode are supported, so do\r
// not produce the Graphics Output protocol. Instead, produce the VGA MiniPort Protocol.\r
if (BiosVideoPrivate->GraphicsOutput.Mode != NULL) {\r
if (BiosVideoPrivate->GraphicsOutput.Mode->Info != NULL) {\r
FreePool (BiosVideoPrivate->GraphicsOutput.Mode->Info);\r
+ BiosVideoPrivate->GraphicsOutput.Mode->Info = NULL;\r
}\r
FreePool (BiosVideoPrivate->GraphicsOutput.Mode);\r
+ BiosVideoPrivate->GraphicsOutput.Mode = NULL;\r
}\r
//\r
// Free EDID discovered protocol occupied resource\r
BiosVideoPrivate->ModeData = NULL;\r
BiosVideoPrivate->MaxMode = 0;\r
}\r
- if (BiosVideoPrivate->GraphicsOutput.Mode != NULL) {\r
- if (BiosVideoPrivate->GraphicsOutput.Mode->Info != NULL) {\r
- FreePool (BiosVideoPrivate->GraphicsOutput.Mode->Info);\r
- BiosVideoPrivate->GraphicsOutput.Mode->Info = NULL;\r
- }\r
- FreePool (BiosVideoPrivate->GraphicsOutput.Mode);\r
- BiosVideoPrivate->GraphicsOutput.Mode= NULL;\r
- }\r
if (EdidOverrideDataBlock != NULL) {\r
FreePool (EdidOverrideDataBlock);\r
}\r