]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/BootMaintenanceManagerUiLib/UpdatePage.c
MdeModulePkg/BootMaintUi: Add error handling codes when AllocatePool fail
[mirror_edk2.git] / MdeModulePkg / Library / BootMaintenanceManagerUiLib / UpdatePage.c
index cd1756aa588a677d669b83a553201384f2520550..9e79826a6afaaea4e715774da6ae18087ad421a1 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 Dynamically update the pages.\r
 \r
-Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -581,7 +581,6 @@ UpdateOrderPage (
   UINT16            Index;\r
   UINT16            OptionIndex;\r
   VOID              *OptionsOpCodeHandle;\r
-  BM_LOAD_CONTEXT   *NewLoadContext;\r
   BOOLEAN           BootOptionFound;\r
   UINT32            *OptionOrder;\r
   EFI_QUESTION_ID   QuestionId;\r
@@ -619,7 +618,6 @@ UpdateOrderPage (
     BootOptionFound = FALSE;\r
     for (Index = 0; Index < OptionMenu->MenuNumber; Index++) {\r
       NewMenuEntry   = BOpt_GetMenuEntry (OptionMenu, Index);\r
-      NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
       if ((UINT32) (NewMenuEntry->OptionNumber + 1) == OptionOrder[OptionIndex]) {\r
         BootOptionFound = TRUE;\r
         break;\r
@@ -659,138 +657,6 @@ UpdateOrderPage (
 \r
 }\r
 \r
-/**\r
-  Create the dynamic page to allow user to set\r
-  the "BootNext" value.\r
-\r
-  @param CallbackData    The BMM context data.\r
-\r
-**/\r
-VOID\r
-UpdateBootNextPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
-  )\r
-{\r
-  BM_MENU_ENTRY   *NewMenuEntry;\r
-  BM_LOAD_CONTEXT *NewLoadContext;\r
-  UINTN           NumberOfOptions;\r
-  UINT16          Index;\r
-  VOID            *OptionsOpCodeHandle;\r
-\r
-  NumberOfOptions               = BootOptionMenu.MenuNumber;\r
-  CallbackData->BmmAskSaveOrNot = TRUE;\r
-\r
-  UpdatePageStart (CallbackData);\r
-\r
-  if (NumberOfOptions > 0) {\r
-    OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();\r
-    ASSERT (OptionsOpCodeHandle != NULL);\r
-\r
-    CallbackData->BmmFakeNvData.BootNext = NONE_BOOTNEXT_VALUE;\r
-\r
-    for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {\r
-      NewMenuEntry    = BOpt_GetMenuEntry (&BootOptionMenu, Index);\r
-      NewLoadContext  = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
-\r
-      if (NewLoadContext->IsBootNext) {\r
-        HiiCreateOneOfOptionOpCode (\r
-          OptionsOpCodeHandle,\r
-          NewMenuEntry->DisplayStringToken,\r
-          EFI_IFR_OPTION_DEFAULT,\r
-          EFI_IFR_TYPE_NUM_SIZE_32,\r
-          Index\r
-          );\r
-        CallbackData->BmmFakeNvData.BootNext = Index;\r
-      } else {\r
-        HiiCreateOneOfOptionOpCode (\r
-          OptionsOpCodeHandle,\r
-          NewMenuEntry->DisplayStringToken,\r
-          0,\r
-          EFI_IFR_TYPE_NUM_SIZE_32,\r
-          Index\r
-          );\r
-      }\r
-    }\r
-\r
-    if (CallbackData->BmmFakeNvData.BootNext == NONE_BOOTNEXT_VALUE) {\r
-      HiiCreateOneOfOptionOpCode (\r
-        OptionsOpCodeHandle,\r
-        STRING_TOKEN (STR_NONE),\r
-        EFI_IFR_OPTION_DEFAULT,\r
-        EFI_IFR_TYPE_NUM_SIZE_32,\r
-        NONE_BOOTNEXT_VALUE\r
-        );\r
-    } else {\r
-      HiiCreateOneOfOptionOpCode (\r
-        OptionsOpCodeHandle,\r
-        STRING_TOKEN (STR_NONE),\r
-        0,\r
-        EFI_IFR_TYPE_NUM_SIZE_32,\r
-        NONE_BOOTNEXT_VALUE\r
-        );\r
-    }      \r
-\r
-    HiiCreateOneOfOpCode (\r
-      mStartOpCodeHandle,\r
-      (EFI_QUESTION_ID) BOOT_NEXT_QUESTION_ID,\r
-      VARSTORE_ID_BOOT_MAINT,\r
-      BOOT_NEXT_VAR_OFFSET,\r
-      STRING_TOKEN (STR_BOOT_NEXT),\r
-      STRING_TOKEN (STR_BOOT_NEXT_HELP),\r
-      0,\r
-      EFI_IFR_NUMERIC_SIZE_4,\r
-      OptionsOpCodeHandle,\r
-      NULL\r
-      );\r
-\r
-    HiiFreeOpCodeHandle (OptionsOpCodeHandle);\r
-  }\r
-\r
-  UpdatePageEnd (CallbackData);\r
-}\r
-\r
-/**\r
-  Create the dynamic page to allow user to set the "TimeOut" value.\r
-\r
-  @param CallbackData    The BMM context data.\r
-\r
-**/\r
-VOID\r
-UpdateTimeOutPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
-  )\r
-{\r
-  VOID    *DefaultOpCodeHandle;\r
-\r
-  CallbackData->BmmAskSaveOrNot = TRUE;\r
-\r
-  UpdatePageStart (CallbackData);\r
-\r
-  DefaultOpCodeHandle = HiiAllocateOpCodeHandle ();\r
-  ASSERT (DefaultOpCodeHandle != NULL);\r
-  HiiCreateDefaultOpCode (DefaultOpCodeHandle, EFI_HII_DEFAULT_CLASS_STANDARD, EFI_IFR_TYPE_NUM_SIZE_16, CallbackData->BmmFakeNvData.BootTimeOut);\r
-\r
-  HiiCreateNumericOpCode (\r
-    mStartOpCodeHandle,\r
-    (EFI_QUESTION_ID) BOOT_TIME_OUT_QUESTION_ID,\r
-    VARSTORE_ID_BOOT_MAINT,\r
-    BOOT_TIME_OUT_VAR_OFFSET,\r
-    STRING_TOKEN (STR_NUM_AUTO_BOOT),\r
-    STRING_TOKEN (STR_HLP_AUTO_BOOT),\r
-    0,\r
-    EFI_IFR_NUMERIC_SIZE_2 | EFI_IFR_DISPLAY_UINT_DEC,\r
-    0,\r
-    65535,\r
-    0,\r
-    DefaultOpCodeHandle\r
-    );\r
-  \r
-  HiiFreeOpCodeHandle (DefaultOpCodeHandle);\r
-\r
-  UpdatePageEnd (CallbackData);\r
-}\r
-\r
-\r
 /**\r
   Refresh the text mode page.\r
 \r
@@ -1154,17 +1020,19 @@ UpdateOptionPage(
   CHAR16                *String;\r
   EFI_STRING_ID         StringToken;\r
 \r
+  String = NULL;\r
+\r
   if (DevicePath != NULL){\r
     String = ExtractFileNameFromDevicePath(DevicePath);\r
-    StringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, String, NULL);\r
-    FreePool(String);\r
-  } else {\r
+  }\r
+  if (String == NULL) {\r
     String = HiiGetString (CallbackData->BmmHiiHandle, STRING_TOKEN (STR_NULL_STRING), NULL);\r
     ASSERT (String != NULL);\r
-    StringToken =  HiiSetString (CallbackData->BmmHiiHandle, 0, String, NULL);\r
-    FreePool (String);\r
   }\r
 \r
+  StringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, String, NULL);\r
+  FreePool (String);\r
+\r
   if(FormId == FORM_BOOT_ADD_ID){\r
     if (!CallbackData->BmmFakeNvData.BootOptionChanged) {\r
       ZeroMem (CallbackData->BmmFakeNvData.BootOptionalData, sizeof (CallbackData->BmmFakeNvData.BootOptionalData));\r