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
\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
\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
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
FreePool (LanguageString);\r
\r
if (ReInitializeStrings) {\r
- FreePool (StringBuffer);\r
FreePool (OptionList);\r
return EFI_SUCCESS;\r
}\r
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