)\r
{\r
EFI_STATUS Status;\r
- UINTN PasswordSize;\r
UINTN ScreenSize;\r
CHAR16 NullCharacter;\r
CHAR16 Space[2];\r
UINTN DimensionsWidth;\r
UINTN DimensionsHeight;\r
EFI_IFR_DATA_ENTRY *DataEntry;\r
+ UINTN WidthOfString;\r
\r
DimensionsWidth = gScreenDimensions.RightColumn - gScreenDimensions.LeftColumn;\r
DimensionsHeight = gScreenDimensions.BottomRow - gScreenDimensions.TopRow;\r
\r
VariableDefinition = NULL;\r
- PasswordSize = 0;\r
NullCharacter = CHAR_NULL;\r
Space[0] = L' ';\r
Space[1] = CHAR_NULL;\r
// Upon error, we will likely receive a string to print out\r
// Display error popup\r
//\r
- ScreenSize = EFI_MAX(GetStringWidth (Packet->String), GetStringWidth (gPressEnter)) / 2;\r
+ WidthOfString = GetStringWidth (Packet->String);\r
+ ScreenSize = EFI_MAX(WidthOfString, GetStringWidth (gPressEnter)) / 2;\r
CreatePopUp (ScreenSize, 4, &NullCharacter, Packet->String, gPressEnter, &NullCharacter);\r
gBS->FreePool (Packet);\r
\r
} while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);\r
}\r
\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_NOT_READY;\r
+ Status = EFI_NOT_READY;\r
+ goto Done;\r
}\r
}\r
\r
if (Confirmation) {\r
if (EFI_ERROR (Status)) {\r
if (Packet->String == NULL) {\r
- ScreenSize = EFI_MAX (GetStringWidth (gConfirmError), GetStringWidth (gPressEnter)) / 2;\r
+ WidthOfString = GetStringWidth (gConfirmError);\r
+ ScreenSize = EFI_MAX (WidthOfString, GetStringWidth (gPressEnter)) / 2;\r
CreatePopUp (ScreenSize, 4, &NullCharacter, gConfirmError, gPressEnter, &NullCharacter);\r
} else {\r
- ScreenSize = EFI_MAX (GetStringWidth (Packet->String), GetStringWidth (gPressEnter)) / 2;\r
+ WidthOfString = GetStringWidth (Packet->String);\r
+ ScreenSize = EFI_MAX (WidthOfString, GetStringWidth (gPressEnter)) / 2;\r
CreatePopUp (ScreenSize, 4, &NullCharacter, Packet->String, gPressEnter, &NullCharacter);\r
gBS->FreePool (Packet);\r
}\r
Status = WaitForKeyStroke (&Key);\r
\r
if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) {\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_NOT_READY;\r
+ Status = EFI_NOT_READY;\r
+ goto Done;\r
}\r
} while (1);\r
} else {\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_NOT_READY;\r
+ Status = EFI_NOT_READY;\r
+ goto Done;\r
}\r
} else {\r
//\r
}\r
\r
if (PromptForPassword && EFI_ERROR (Status)) {\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_DEVICE_ERROR;\r
+ Status = EFI_DEVICE_ERROR;\r
+ goto Done;\r
}\r
}\r
}\r
// Otherwise, kick and error box, and return an error\r
//\r
if (StrCmp (TempString, TempString2) == 0) {\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_SUCCESS;\r
+ Status = EFI_SUCCESS;\r
+ goto Done;\r
} else {\r
- ScreenSize = EFI_MAX (GetStringWidth (gConfirmError), GetStringWidth (gPressEnter)) / 2;\r
+ WidthOfString = GetStringWidth (gConfirmError);\r
+ ScreenSize = EFI_MAX (WidthOfString, GetStringWidth (gPressEnter)) / 2;\r
CreatePopUp (ScreenSize, 4, &NullCharacter, gConfirmError, gPressEnter, &NullCharacter);\r
StringPtr[0] = CHAR_NULL;\r
do {\r
Status = WaitForKeyStroke (&Key);\r
if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) {\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_DEVICE_ERROR;\r
+ Status = EFI_DEVICE_ERROR;\r
+ goto Done;\r
}\r
} while (1);\r
}\r
//\r
// I was asked for a password, return it back in StringPtr\r
//\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_SUCCESS;\r
+ Status = EFI_SUCCESS;\r
+ goto Done;\r
} else {\r
//\r
// If the two passwords were not the same kick an error popup\r
} while (!ConfirmationComplete);\r
\r
} while (1);\r
+\r
+Done:\r
gBS->FreePool (TempString);\r
gBS->FreePool (TempString2);\r
return Status;\r
CHAR16 NullCharacter;\r
CHAR16 *StringPtr;\r
EFI_FILE_FORM_TAGS *FileFormTags;\r
- EFI_STATUS Status;\r
EFI_VARIABLE_DEFINITION *VariableDefinition;\r
UINTN Loop;\r
\r
goto TheKey2;\r
}\r
\r
- Status = WaitForKeyStroke (&Key);\r
+ WaitForKeyStroke (&Key);\r
\r
TheKey2:\r
switch (Key.UnicodeChar) {\r
CreatePopUp (GetStringWidth (StringPtr) / 2, 3, &NullCharacter, StringPtr, &NullCharacter);\r
\r
do {\r
- Status = WaitForKeyStroke (&Key);\r
+ WaitForKeyStroke (&Key);\r
\r
switch (Key.UnicodeChar) {\r
\r
OUT UINT16 *KeyValue\r
)\r
{\r
- EFI_STATUS Status;\r
EFI_INPUT_KEY Key;\r
UINTN Index;\r
UINTN TempIndex;\r
UINTN MenuLinesInView;\r
UINTN PopUpWidth;\r
CHAR16 Character;\r
- UINTN FirstOption;\r
BOOLEAN FirstOptionFoundFlag;\r
INT32 SavedAttribute;\r
EFI_TAG TagBackup;\r
BOOLEAN ShowDownArrow;\r
BOOLEAN ShowUpArrow;\r
UINTN DimensionsWidth;\r
- UINTN DimensionsHeight;\r
\r
DimensionsWidth = gScreenDimensions.RightColumn - gScreenDimensions.LeftColumn;\r
- DimensionsHeight = gScreenDimensions.BottomRow - gScreenDimensions.TopRow;\r
\r
TempValue = 0;\r
TempIndex = 0;\r
Count = 0;\r
PopUpWidth = 0;\r
\r
- FirstOption = MenuOption->TagIndex;\r
FirstOptionFoundFlag = FALSE;\r
\r
StringPtr = AllocateZeroPool ((gOptionBlockWidth + 1) * 2);\r
if (MenuOption->Tags[Index].Operand == EFI_IFR_ONE_OF_OPTION_OP &&\r
!MenuOption->Tags[Index].Suppress) {\r
if (!FirstOptionFoundFlag) {\r
- FirstOption = Index;\r
FirstOptionFoundFlag = TRUE;\r
}\r
\r
KeyInitialized = TRUE;\r
}\r
\r
- Status = WaitForKeyStroke (&Key);\r
+ WaitForKeyStroke (&Key);\r
\r
TheKey:\r
switch (Key.UnicodeChar) {\r
*Value = TempValue;\r
}\r
\r
- gST->ConOut->SetAttribute (gST->ConOut, SavedAttribute);\r
- return EFI_SUCCESS;\r
+ goto Done;\r
\r
default:\r
break;\r
}\r
} while (1);\r
\r
+Done:\r
gST->ConOut->SetAttribute (gST->ConOut, SavedAttribute);\r
return EFI_SUCCESS;\r
}\r