]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/SetupBrowserDxe/InputHandler.c
Fix ICC build break.
[mirror_edk2.git] / MdeModulePkg / Universal / SetupBrowserDxe / InputHandler.c
index b958f4fdc7a635fc0c83a32ab7290fdca3d3ae64..3006d0597d3e5b0ac9aceb465cebc8dceb2484ac 100644 (file)
@@ -114,8 +114,8 @@ ReadString (
         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
@@ -129,8 +129,8 @@ ReadString (
     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
@@ -143,8 +143,8 @@ ReadString (
           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
@@ -235,9 +235,9 @@ GetNumericInput (
   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
@@ -387,6 +387,7 @@ GetNumericInput (
 \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
@@ -498,6 +499,8 @@ TheKey2:
             PrintChar (RIGHT_NUMERIC_DELIMITER);\r
           }\r
         }\r
+\r
+        goto EnterCarriageReturn;\r
         break;\r
 \r
       case SCAN_UP:\r
@@ -602,7 +605,13 @@ EnterCarriageReturn:
     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
@@ -638,6 +647,7 @@ EnterCarriageReturn:
 \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
@@ -645,6 +655,7 @@ EnterCarriageReturn:
         }\r
 \r
         Count++;\r
+        ASSERT (Count < (sizeof (PreviousNumber) / sizeof (PreviousNumber[0])));\r
         PreviousNumber[Count] = EditValue;\r
 \r
         PrintCharAt (Column, Row, Key.UnicodeChar);\r
@@ -802,7 +813,7 @@ GetSelectionInputPopUp (
     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
@@ -899,7 +910,7 @@ GetSelectionInputPopUp (
         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
@@ -919,7 +930,7 @@ GetSelectionInputPopUp (
         }\r
 \r
       Index2++;\r
-      gBS->FreePool (StringPtr);\r
+      FreePool (StringPtr);\r
     }\r
 \r
     Character = BOXDRAW_UP_RIGHT;\r
@@ -968,6 +979,7 @@ TheKey:
         if (HighlightOptionIndex > 0) {\r
           HighlightOptionIndex--;\r
 \r
+          ASSERT (CurrentOption != NULL);\r
           SwapListEntries (CurrentOption->Link.BackLink, &CurrentOption->Link);\r
         }\r
       }\r
@@ -995,6 +1007,7 @@ TheKey:
         if (HighlightOptionIndex < (PopUpMenuLines - 1)) {\r
           HighlightOptionIndex++;\r
 \r
+          ASSERT (CurrentOption != NULL);\r
           SwapListEntries (&CurrentOption->Link, CurrentOption->Link.ForwardLink);\r
         }\r
       }\r
@@ -1051,7 +1064,7 @@ TheKey:
           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
@@ -1065,7 +1078,7 @@ TheKey:
           }\r
         }\r
 \r
-        gBS->FreePool (HiiValueArray);\r
+        FreePool (HiiValueArray);\r
         return EFI_DEVICE_ERROR;\r
 \r
       default:\r
@@ -1094,11 +1107,12 @@ TheKey:
           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