]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/HiiDatabaseDxe/Image.c
1) Add type cast for better coding style.
[mirror_edk2.git] / MdeModulePkg / Universal / HiiDatabaseDxe / Image.c
index e570913c6ffdd2fba54fa10e7cb35c552097203f..560cf8fe2cffbc60166ea201b4d693cfce3a2c64 100644 (file)
@@ -2,8 +2,8 @@
 Implementation for EFI_HII_IMAGE_PROTOCOL.\r
 \r
 \r
-Copyright (c) 2007 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
@@ -79,27 +79,24 @@ GetImageIdOrAddress (
     }\r
     switch (((EFI_HII_IMAGE_BLOCK *) ImageBlock)->BlockType) {\r
     case EFI_HII_IIBT_EXT1:\r
-      Length8 = *(ImageBlock + sizeof (EFI_HII_IMAGE_BLOCK) + sizeof (UINT8));\r
+      Length8 = *(UINT8*)((UINTN)ImageBlock + sizeof (EFI_HII_IMAGE_BLOCK) + sizeof (UINT8));\r
       ImageBlock += Length8;\r
-      ImageIdCurrent++;\r
       break;\r
     case EFI_HII_IIBT_EXT2:\r
       CopyMem (\r
         &Length16,\r
-        ImageBlock + sizeof (EFI_HII_IMAGE_BLOCK) + sizeof (UINT8),\r
+        (UINT8*)((UINTN)ImageBlock + sizeof (EFI_HII_IMAGE_BLOCK) + sizeof (UINT8)),\r
         sizeof (UINT16)\r
         );\r
       ImageBlock += Length16;\r
-      ImageIdCurrent++;\r
       break;\r
     case EFI_HII_IIBT_EXT4:\r
       CopyMem (\r
         &Length32,\r
-        ImageBlock + sizeof (EFI_HII_IMAGE_BLOCK) + sizeof (UINT8),\r
+        (UINT8*)((UINTN)ImageBlock + sizeof (EFI_HII_IMAGE_BLOCK) + sizeof (UINT8)),\r
         sizeof (UINT32)\r
         );\r
       ImageBlock += Length32;\r
-      ImageIdCurrent++;\r
       break;\r
 \r
     case EFI_HII_IIBT_IMAGE_1BIT:\r
@@ -288,7 +285,7 @@ Output1bitPixel (
   ZeroMem (PaletteValue, sizeof (PaletteValue));\r
   CopyRgbToGopPixel (&PaletteValue[0], &Palette->PaletteValue[0], 1);\r
   CopyRgbToGopPixel (&PaletteValue[1], &Palette->PaletteValue[1], 1);\r
-  SafeFreePool (Palette);\r
+  FreePool (Palette);\r
 \r
   //\r
   // Convert the pixel from one bit to corresponding color.\r
@@ -373,7 +370,7 @@ Output4bitPixel (
 \r
   ZeroMem (PaletteValue, sizeof (PaletteValue));\r
   CopyRgbToGopPixel (PaletteValue, Palette->PaletteValue, PaletteNum);\r
-  SafeFreePool (Palette);\r
+  FreePool (Palette);\r
 \r
   //\r
   // Convert the pixel from 4 bit to corresponding color.\r
@@ -446,7 +443,7 @@ Output8bitPixel (
   PaletteNum = (UINT16)(Palette->PaletteSize / sizeof (EFI_HII_RGB_PIXEL));\r
   ZeroMem (PaletteValue, sizeof (PaletteValue));\r
   CopyRgbToGopPixel (PaletteValue, Palette->PaletteValue, PaletteNum);\r
-  SafeFreePool (Palette);\r
+  FreePool (Palette);\r
 \r
   //\r
   // Convert the pixel from 8 bits to corresponding color.\r
@@ -679,7 +676,7 @@ HiiNewImage (
       ImagePackage->ImageBlock,\r
       ImagePackage->ImageBlockSize - sizeof (EFI_HII_IIBT_END_BLOCK)\r
       );\r
-    SafeFreePool (ImagePackage->ImageBlock);\r
+    FreePool (ImagePackage->ImageBlock);\r
     ImagePackage->ImageBlock = ImageBlock;\r
     ImageBlock += ImagePackage->ImageBlockSize - sizeof (EFI_HII_IIBT_END_BLOCK);\r
     //\r
@@ -687,8 +684,7 @@ HiiNewImage (
     //\r
     NewBlock = AllocateZeroPool (NewBlockSize);\r
     if (NewBlock == NULL) {\r
-      SafeFreePool (ImagePackage->ImageBlock);\r
-      ImagePackage->ImageBlock = NULL;\r
+      FreePool (ImagePackage->ImageBlock);\r
       return EFI_OUT_OF_RESOURCES;\r
     }\r
     NewBlockPtr = NewBlock;\r
@@ -735,7 +731,7 @@ HiiNewImage (
     ImagePackage->ImageBlockSize = (UINT32) BlockSize;\r
     ImagePackage->ImageBlock = (UINT8 *) AllocateZeroPool (BlockSize);\r
     if (ImagePackage->ImageBlock == NULL) {\r
-      SafeFreePool (ImagePackage);\r
+      FreePool (ImagePackage);\r
       return EFI_OUT_OF_RESOURCES;\r
     }\r
     ImageBlock = ImagePackage->ImageBlock;\r
@@ -745,8 +741,8 @@ HiiNewImage (
     //\r
     NewBlock = AllocateZeroPool (NewBlockSize);\r
     if (NewBlock == NULL) {\r
-      SafeFreePool (ImagePackage->ImageBlock);\r
-      SafeFreePool (ImagePackage);\r
+      FreePool (ImagePackage->ImageBlock);\r
+      FreePool (ImagePackage);\r
       return EFI_OUT_OF_RESOURCES;\r
     }\r
     NewBlockPtr = NewBlock;\r
@@ -774,7 +770,7 @@ HiiNewImage (
   CopyGopToRgbPixel ((EFI_HII_RGB_PIXEL *) NewBlock, ImageIn->Bitmap, ImageIn->Width * ImageIn->Height);\r
 \r
   CopyMem (ImageBlock, NewBlockPtr, NewBlockSize);\r
-  SafeFreePool (NewBlockPtr);\r
+  FreePool (NewBlockPtr);\r
 \r
   //\r
   // Append the block end\r
@@ -883,7 +879,6 @@ HiiGetImage (
     // BUGBUG: need to be supported as soon as image tool is designed.\r
     //\r
     return EFI_UNSUPPORTED;\r
-    break;\r
 \r
   case EFI_HII_IIBT_IMAGE_1BIT_TRANS:\r
   case EFI_HII_IIBT_IMAGE_4BIT_TRANS:\r
@@ -925,25 +920,24 @@ HiiGetImage (
     if (BlockType == EFI_HII_IIBT_IMAGE_1BIT || BlockType == EFI_HII_IIBT_IMAGE_1BIT_TRANS) {\r
       Output1bitPixel (\r
         Image,\r
-        (UINT8 *) (ImageBlock + sizeof (EFI_HII_IIBT_IMAGE_1BIT_BLOCK) - sizeof (UINT8)),\r
+        (UINT8 *) ((UINTN)ImageBlock + sizeof (EFI_HII_IIBT_IMAGE_1BIT_BLOCK) - sizeof (UINT8)),\r
         (EFI_HII_IMAGE_PALETTE_INFO *) PaletteInfo\r
         );\r
     } else if (BlockType == EFI_HII_IIBT_IMAGE_4BIT || BlockType == EFI_HII_IIBT_IMAGE_4BIT_TRANS) {\r
       Output4bitPixel (\r
         Image,\r
-        (UINT8 *) (ImageBlock + sizeof (EFI_HII_IIBT_IMAGE_4BIT_BLOCK) - sizeof (UINT8)),\r
+        (UINT8 *) ((UINTN)ImageBlock + sizeof (EFI_HII_IIBT_IMAGE_4BIT_BLOCK) - sizeof (UINT8)),\r
         (EFI_HII_IMAGE_PALETTE_INFO *) PaletteInfo\r
         );\r
     } else {\r
       Output8bitPixel (\r
         Image,\r
-        (UINT8 *) (ImageBlock + sizeof (EFI_HII_IIBT_IMAGE_8BIT_BLOCK) - sizeof (UINT8)),\r
+        (UINT8 *) ((UINTN)ImageBlock + sizeof (EFI_HII_IIBT_IMAGE_8BIT_BLOCK) - sizeof (UINT8)),\r
         (EFI_HII_IMAGE_PALETTE_INFO *) PaletteInfo\r
         );\r
     }\r
 \r
     return EFI_SUCCESS;\r
-    break;\r
 \r
   case EFI_HII_IIBT_IMAGE_24BIT_TRANS:\r
     Flag = TRUE;\r
@@ -977,11 +971,9 @@ HiiGetImage (
       (EFI_HII_RGB_PIXEL *) (ImageBlock + sizeof (EFI_HII_IIBT_IMAGE_24BIT_BLOCK) - sizeof (EFI_HII_RGB_PIXEL))\r
       );\r
     return EFI_SUCCESS;\r
-    break;\r
 \r
   default:\r
     return EFI_NOT_FOUND;\r
-    break;\r
   }\r
 }\r
 \r
@@ -1088,7 +1080,6 @@ HiiSetImage (
     // BUGBUG: need to be supported as soon as image tool is designed.\r
     //\r
     return EFI_UNSUPPORTED;\r
-    break;\r
 \r
   case EFI_HII_IIBT_IMAGE_1BIT:\r
   case EFI_HII_IIBT_IMAGE_1BIT_TRANS:\r
@@ -1121,7 +1112,6 @@ HiiSetImage (
     break;\r
   default:\r
     return EFI_NOT_FOUND;\r
-    break;\r
   }\r
 \r
   //\r
@@ -1156,7 +1146,7 @@ HiiSetImage (
   BlockSize = ImagePackage->ImageBlockSize + NewBlockSize - OldBlockSize;\r
   Block = (UINT8 *) AllocateZeroPool (BlockSize);\r
   if (Block == NULL) {\r
-    SafeFreePool (NewBlock);\r
+    FreePool (NewBlock);\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
@@ -1169,8 +1159,8 @@ HiiSetImage (
   BlockPtr += NewBlockSize;\r
   CopyMem (BlockPtr, ImageBlock + OldBlockSize, Part2Size);\r
 \r
-  SafeFreePool (ImagePackage->ImageBlock);\r
-  SafeFreePool (NewBlock);\r
+  FreePool (ImagePackage->ImageBlock);\r
+  FreePool (NewBlock);\r
   ImagePackage->ImageBlock     = Block;\r
   ImagePackage->ImageBlockSize = BlockSize;\r
   ImagePackage->ImagePkgHdr.Header.Length += NewBlockSize - OldBlockSize;\r
@@ -1234,7 +1224,6 @@ HiiDrawImage (
   UINTN                               OffsetY2;\r
   EFI_FONT_DISPLAY_INFO               *FontInfo;\r
   UINTN                               Index;\r
-  EFI_CONSOLE_CONTROL_PROTOCOL        *Console;\r
 \r
   if (This == NULL || Image == NULL || Blt == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -1248,6 +1237,7 @@ HiiDrawImage (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
+  FontInfo = NULL;\r
   ImageIn = (EFI_IMAGE_INPUT *) Image;\r
 \r
   //\r
@@ -1324,17 +1314,10 @@ HiiDrawImage (
     // Draw the image to existing bitmap or screen depending on flag.\r
     //\r
     if ((Flags & EFI_HII_DIRECT_TO_SCREEN) == EFI_HII_DIRECT_TO_SCREEN) {\r
-      Status = gBS->LocateProtocol (\r
-                      &gEfiConsoleControlProtocolGuid,\r
-                      NULL,\r
-                      (VOID **) &Console\r
-                      );\r
-\r
-      if (EFI_ERROR (Status)) {\r
-        return Status;\r
-      }\r
+      //\r
+      // Caller should make sure the current UGA console is grarphic mode.\r
+      //\r
 \r
-      Console->SetMode (Console, EfiConsoleControlScreenGraphics);\r
       //\r
       // Write the image directly to the output device specified by Screen.\r
       //\r
@@ -1366,7 +1349,7 @@ HiiDrawImage (
 \r
     }\r
 \r
-    SafeFreePool (BltBuffer);\r
+    FreePool (BltBuffer);\r
     return Status;\r
 \r
   } else {\r
@@ -1384,7 +1367,7 @@ HiiDrawImage (
 \r
     ImageOut = (EFI_IMAGE_OUTPUT *) AllocateZeroPool (sizeof (EFI_IMAGE_OUTPUT));\r
     if (ImageOut == NULL) {\r
-      SafeFreePool (BltBuffer);\r
+      FreePool (BltBuffer);\r
       return EFI_OUT_OF_RESOURCES;\r
     }\r
     ImageOut->Width        = (UINT16) Width;\r
@@ -1397,14 +1380,15 @@ HiiDrawImage (
     //\r
     Status = GetSystemFont (Private, &FontInfo, NULL);\r
     if (EFI_ERROR (Status)) {\r
-      SafeFreePool (BltBuffer);\r
-      SafeFreePool (ImageOut);\r
+      FreePool (BltBuffer);\r
+      FreePool (ImageOut);\r
       return Status;\r
     }\r
+    ASSERT (FontInfo != NULL);\r
     for (Index = 0; Index < Width * Height; Index++) {\r
       BltBuffer[Index] = FontInfo->BackgroundColor;\r
     }\r
-    SafeFreePool (FontInfo);\r
+    FreePool (FontInfo);\r
 \r
     //\r
     // Draw the incoming image to the new created image.\r
@@ -1494,7 +1478,9 @@ HiiDrawImageId (
   // Draw this image.\r
   //\r
   Status = HiiDrawImage (This, Flags, &Image, Blt, BltX, BltY);\r
-  SafeFreePool (Image.Bitmap);\r
+  if (Image.Bitmap != NULL) {\r
+    FreePool (Image.Bitmap);\r
+  }\r
   return Status;\r
 }\r
 \r