]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Nt32Pkg/PlatformBdsDxe/Generic/FrontPage.c
Merger trackers #7807 and #8372.
[mirror_edk2.git] / Nt32Pkg / PlatformBdsDxe / Generic / FrontPage.c
index 9b8a805e462d8835d430b6d7559eebf7a05b3bdc..2ab8bb85971ad55eece599db4ac60a2f13a65f5e 100644 (file)
@@ -18,12 +18,6 @@ Abstract:
   FrontPage routines to handle the callbacks and browser calls\r
 \r
 --*/\r
-\r
-//\r
-// Include common header file for this module.\r
-//\r
-#include "CommonHeader.h"\r
-\r
 #include "Bds.h"\r
 #include "BdsPlatform.h"\r
 #include "FrontPage.h"\r
@@ -71,13 +65,13 @@ Returns:
 \r
 --*/\r
 {\r
-  CHAR16        *LanguageString;\r
-  UINTN         Count;\r
-  CHAR16        UnicodeLang[3];\r
-  CHAR8         Lang[3];\r
-  EFI_STATUS    Status;\r
-  UINTN         Index;\r
-  CHAR16        *TmpStr;\r
+  CHAR16                        *LanguageString;\r
+  UINTN                         Count;\r
+  CHAR16                        UnicodeLang[3];\r
+  CHAR8                         Lang[3];\r
+  EFI_STATUS                    Status;\r
+  UINTN                         Index;\r
+  CHAR16                        *TmpStr;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL Color;\r
@@ -338,17 +332,6 @@ ReInitStrings:
 \r
   OptionCount = 0;\r
 \r
-  //\r
-  // Try for a 512 byte Buffer\r
-  //\r
-  BufferSize = 0x200;\r
-\r
-  //\r
-  // Allocate memory for our Form binary\r
-  //\r
-  StringBuffer = AllocateZeroPool (BufferSize);\r
-  ASSERT (StringBuffer != NULL);\r
-\r
   for (Index = 0; LanguageString[Index] != 0; Index += 3) {\r
     Token = 0;\r
     CopyMem (Lang, &LanguageString[Index], 6);\r
@@ -358,8 +341,15 @@ ReInitStrings:
       mLastSelection = (UINT16) OptionCount;\r
     }\r
 \r
+    BufferSize = 0;\r
+    Status = gHii->GetString (gHii, gStringPackHandle, 1, TRUE, Lang, &BufferSize, NULL);\r
+    ASSERT (Status == EFI_BUFFER_TOO_SMALL);\r
+    StringBuffer = AllocateZeroPool (BufferSize);\r
+    ASSERT (StringBuffer != NULL);\r
     Status = gHii->GetString (gHii, gStringPackHandle, 1, TRUE, Lang, &BufferSize, StringBuffer);\r
+    ASSERT_EFI_ERROR (Status);\r
     gHii->NewString (gHii, NULL, gStringPackHandle, &Token, StringBuffer);\r
+    FreePool (StringBuffer);\r
     CopyMem (&OptionList[OptionCount].StringToken, &Token, sizeof (UINT16));\r
     CopyMem (&OptionList[OptionCount].Value, &OptionCount, sizeof (UINT16));\r
     Key = 0x1234;\r
@@ -371,7 +361,6 @@ ReInitStrings:
   FreePool (LanguageString);\r
 \r
   if (ReInitializeStrings) {\r
-    FreePool (StringBuffer);\r
     FreePool (OptionList);\r
     return EFI_SUCCESS;\r
   }\r
@@ -394,10 +383,7 @@ ReInitStrings:
   gHii->UpdateForm (gHii, gFrontPageHandle, (EFI_FORM_LABEL) 0x0002, TRUE, UpdateData);\r
 \r
   FreePool (UpdateData);\r
-  //\r
-  // FreePool (OptionList);\r
-  //\r
-  FreePool (StringBuffer);\r
+  FreePool (OptionList);\r
   return Status;\r
 }\r
 \r