break;\r
\r
case SCAN_ESC:\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (BufferedString);\r
+ FreePool (TempString);\r
+ FreePool (BufferedString);\r
gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));\r
gST->ConOut->EnableCursor (gST->ConOut, CursorVisible);\r
return EFI_DEVICE_ERROR;\r
case CHAR_CARRIAGE_RETURN:\r
if (GetStringWidth (StringPtr) >= ((Minimum + 1) * sizeof (CHAR16))) {\r
\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (BufferedString);\r
+ FreePool (TempString);\r
+ FreePool (BufferedString);\r
gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));\r
gST->ConOut->EnableCursor (gST->ConOut, CursorVisible);\r
return EFI_SUCCESS;\r
CreateDialog (4, TRUE, 0, NULL, &Key, &NullCharacter, gMiniString, gPressEnter, &NullCharacter);\r
} while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);\r
\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (BufferedString);\r
+ FreePool (TempString);\r
+ FreePool (BufferedString);\r
gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));\r
gST->ConOut->EnableCursor (gST->ConOut, CursorVisible);\r
return EFI_DEVICE_ERROR;\r
EFI_STATUS Status;\r
UINTN Column;\r
UINTN Row;\r
- CHAR16 InputText[23];\r
- CHAR16 FormattedNumber[22];\r
- UINT64 PreviousNumber[20];\r
+ CHAR16 InputText[MAX_NUMERIC_INPUT_WIDTH];\r
+ CHAR16 FormattedNumber[MAX_NUMERIC_INPUT_WIDTH - 1];\r
+ UINT64 PreviousNumber[MAX_NUMERIC_INPUT_WIDTH - 3];\r
UINTN Count;\r
UINTN Loop;\r
BOOLEAN ManualInput;\r
\r
InputText[0] = LEFT_NUMERIC_DELIMITER;\r
SetUnicodeMem (InputText + 1, InputWidth, L' ');\r
+ ASSERT (InputWidth + 2 < MAX_NUMERIC_INPUT_WIDTH); \r
InputText[InputWidth + 1] = RIGHT_NUMERIC_DELIMITER;\r
InputText[InputWidth + 2] = L'\0';\r
\r
PrintChar (RIGHT_NUMERIC_DELIMITER);\r
}\r
}\r
+\r
+ goto EnterCarriageReturn;\r
break;\r
\r
case SCAN_UP:\r
default:\r
if (ManualInput) {\r
if (HexInput) {\r
- if (!IsHexDigit (&Digital, Key.UnicodeChar)) {\r
+ if ((Key.UnicodeChar >= L'0') && (Key.UnicodeChar <= L'9')) {\r
+ Digital = (UINT8) (Key.UnicodeChar - L'0');\r
+ } else if ((Key.UnicodeChar >= L'A') && (Key.UnicodeChar <= L'F')) {\r
+ Digital = (UINT8) (Key.UnicodeChar - L'A' + 0x0A);\r
+ } else if ((Key.UnicodeChar >= L'a') && (Key.UnicodeChar <= L'f')) {\r
+ Digital = (UINT8) (Key.UnicodeChar - L'a' + 0x0A);\r
+ } else {\r
UpdateStatusBar (INPUT_ERROR, Question->QuestionFlags, TRUE);\r
break;\r
}\r
\r
if (EditValue > Maximum) {\r
UpdateStatusBar (INPUT_ERROR, Question->QuestionFlags, TRUE);\r
+ ASSERT (Count < sizeof (PreviousNumber) / sizeof (PreviousNumber[0]));\r
EditValue = PreviousNumber[Count];\r
break;\r
} else {\r
}\r
\r
Count++;\r
+ ASSERT (Count < (sizeof (PreviousNumber) / sizeof (PreviousNumber[0])));\r
PreviousNumber[Count] = EditValue;\r
\r
PrintCharAt (Column, Row, Key.UnicodeChar);\r
if (StrLen (StringPtr) > PopUpWidth) {\r
PopUpWidth = StrLen (StringPtr);\r
}\r
- gBS->FreePool (StringPtr);\r
+ FreePool (StringPtr);\r
\r
if (!OrderedList && CompareHiiValue (&Question->HiiValue, &OneOfOption->Value, NULL) == 0) {\r
//\r
TempStringPtr = AllocateZeroPool (sizeof (CHAR16) * (PopUpWidth - 1));\r
ASSERT ( TempStringPtr != NULL );\r
CopyMem (TempStringPtr, StringPtr, (sizeof (CHAR16) * (PopUpWidth - 5)));\r
- gBS->FreePool (StringPtr);\r
+ FreePool (StringPtr);\r
StringPtr = TempStringPtr;\r
StrCat (StringPtr, L"...");\r
}\r
}\r
\r
Index2++;\r
- gBS->FreePool (StringPtr);\r
+ FreePool (StringPtr);\r
}\r
\r
Character = BOXDRAW_UP_RIGHT;\r
if (HighlightOptionIndex > 0) {\r
HighlightOptionIndex--;\r
\r
+ ASSERT (CurrentOption != NULL);\r
SwapListEntries (CurrentOption->Link.BackLink, &CurrentOption->Link);\r
}\r
}\r
if (HighlightOptionIndex < (PopUpMenuLines - 1)) {\r
HighlightOptionIndex++;\r
\r
+ ASSERT (CurrentOption != NULL);\r
SwapListEntries (&CurrentOption->Link, CurrentOption->Link.ForwardLink);\r
}\r
}\r
HiiValue.Value.u64 = 0;\r
for (Index = 0; Index < Question->MaxContainers; Index++) {\r
HiiValue.Value.u8 = ValueArray[Index];\r
- if (HiiValue.Value.u8) {\r
+ if (HiiValue.Value.u8 != 0) {\r
break;\r
}\r
\r
}\r
}\r
\r
- gBS->FreePool (HiiValueArray);\r
+ FreePool (HiiValueArray);\r
return EFI_DEVICE_ERROR;\r
\r
default:\r
Link = GetNextNode (&Question->OptionListHead, Link);\r
}\r
} else {\r
+ ASSERT (CurrentOption != NULL);\r
CopyMem (&Question->HiiValue, &CurrentOption->Value, sizeof (EFI_HII_VALUE));\r
}\r
\r
gST->ConOut->SetAttribute (gST->ConOut, SavedAttribute);\r
- gBS->FreePool (HiiValueArray);\r
+ FreePool (HiiValueArray);\r
\r
Status = ValidateQuestion (Selection->FormSet, Selection->Form, Question, EFI_HII_EXPRESSION_INCONSISTENT_IF);\r
if (EFI_ERROR (Status)) {\r