]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
Roll back changes to apply GetBestLanguage() in HiiDataBase. Exact language match...
[mirror_edk2.git] / MdeModulePkg / Universal / HiiDatabaseDxe / Database.c
index 5a37dd0ef37b9d369355b67692331b08e81c1f67..918559e54490b4c875dba51e27ff89bad0872646 100644 (file)
@@ -195,7 +195,7 @@ InvokeRegisteredFunction (
     Package = (EFI_HII_PACKAGE_HEADER *) (((HII_GUID_PACKAGE_INSTANCE *) PackageInstance)->GuidPkg);\r
     break;\r
 \r
-  case EFI_HII_PACKAGE_FORM:\r
+  case EFI_HII_PACKAGE_FORMS:\r
     BufferSize = ((HII_IFR_PACKAGE_INSTANCE *) PackageInstance)->FormPkgHdr.Length;\r
     Buffer = (UINT8 *) AllocateZeroPool (BufferSize);\r
     ASSERT (Buffer != NULL);\r
@@ -659,7 +659,7 @@ ExportFormPackages (
   for (Link = PackageList->FormPkgHdr.ForwardLink; Link != &PackageList->FormPkgHdr; Link = Link->ForwardLink) {\r
     FormPackage = CR (Link, HII_IFR_PACKAGE_INSTANCE, IfrEntry, HII_IFR_PACKAGE_SIGNATURE);\r
     PackageLength += FormPackage->FormPkgHdr.Length;\r
-    if (PackageLength + *ResultSize + UsedSize <= BufferSize) {\r
+    if ((Buffer != NULL) && (PackageLength + *ResultSize + UsedSize <= BufferSize)) {\r
       //\r
       // Invoke registered notification if exists\r
       //\r
@@ -667,7 +667,7 @@ ExportFormPackages (
                  Private,\r
                  EFI_HII_DATABASE_NOTIFY_EXPORT_PACK,\r
                  (VOID *) FormPackage,\r
-                 EFI_HII_PACKAGE_FORM,\r
+                 EFI_HII_PACKAGE_FORMS,\r
                  Handle\r
                  );\r
       ASSERT_EFI_ERROR (Status);\r
@@ -730,7 +730,7 @@ RemoveFormPackages (
                Private,\r
                EFI_HII_DATABASE_NOTIFY_REMOVE_PACK,\r
                (VOID *) Package,\r
-               EFI_HII_PACKAGE_FORM,\r
+               EFI_HII_PACKAGE_FORMS,\r
                Handle\r
                );\r
     if (EFI_ERROR (Status)) {\r
@@ -809,7 +809,7 @@ InsertStringPackage (
   AsciiStrCpy (Language, (CHAR8 *) PackageHdr + HeaderSize - LanguageSize);\r
   for (Link = PackageList->StringPkgHdr.ForwardLink; Link != &PackageList->StringPkgHdr; Link = Link->ForwardLink) {\r
     StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);\r
-    if (R8_EfiLibCompareLanguage (Language, StringPackage->StringPkgHdr->Language)) {\r
+    if (HiiCompareLanguage (Language, StringPackage->StringPkgHdr->Language)) {\r
       FreePool (Language);\r
       return EFI_UNSUPPORTED;\r
     }\r
@@ -877,13 +877,13 @@ InsertStringPackage (
 \r
 Error:\r
 \r
-  if (StringPackage->StringBlock != NULL) {\r
-    FreePool (StringPackage->StringBlock);\r
-  }\r
-  if (StringPackage->StringPkgHdr != NULL) {\r
-    FreePool (StringPackage->StringPkgHdr);\r
-  }\r
   if (StringPackage != NULL) {\r
+    if (StringPackage->StringBlock != NULL) {\r
+      FreePool (StringPackage->StringBlock);\r
+    }\r
+    if (StringPackage->StringPkgHdr != NULL) {\r
+      FreePool (StringPackage->StringPkgHdr);\r
+    }\r
     FreePool (StringPackage);\r
   }\r
   return Status;\r
@@ -1182,10 +1182,10 @@ Error:
   if (FontInfo != NULL) {\r
     FreePool (FontInfo);\r
   }\r
-  if (FontPackage->GlyphBlock != NULL) {\r
-    FreePool (FontPackage->GlyphBlock);\r
-  }\r
   if (FontPackage != NULL) {\r
+    if (FontPackage->GlyphBlock != NULL) {\r
+      FreePool (FontPackage->GlyphBlock);\r
+    }\r
     FreePool (FontPackage);\r
   }\r
   if (GlobalFont != NULL) {\r
@@ -1713,10 +1713,10 @@ InsertSimpleFontPackage (
 \r
 Error:\r
 \r
-  if (SimpleFontPackage->SimpleFontPkgHdr != NULL) {\r
-    FreePool (SimpleFontPackage->SimpleFontPkgHdr);\r
-  }\r
   if (SimpleFontPackage != NULL) {\r
+    if (SimpleFontPackage->SimpleFontPkgHdr != NULL) {\r
+      FreePool (SimpleFontPackage->SimpleFontPkgHdr);\r
+    }\r
     FreePool (SimpleFontPackage);\r
   }\r
   return Status;\r
@@ -2158,10 +2158,11 @@ InsertKeyboardLayoutPackage (
 \r
 Error:\r
 \r
-  if (KeyboardLayoutPackage->KeyboardPkg != NULL) {\r
-    FreePool (KeyboardLayoutPackage->KeyboardPkg);\r
-  }\r
+\r
   if (KeyboardLayoutPackage != NULL) {\r
+    if (KeyboardLayoutPackage->KeyboardPkg != NULL) {\r
+      FreePool (KeyboardLayoutPackage->KeyboardPkg);\r
+    }\r
     FreePool (KeyboardLayoutPackage);\r
   }\r
 \r
@@ -2386,7 +2387,7 @@ AddPackages (
                  DatabaseRecord->Handle\r
                  );\r
       break;\r
-    case EFI_HII_PACKAGE_FORM:\r
+    case EFI_HII_PACKAGE_FORMS:\r
       Status = InsertFormPackage (\r
                  PackageHdrPtr,\r
                  NotifyType,\r
@@ -2555,7 +2556,7 @@ ExportPackageList (
   UINTN                               ResultSize;\r
   EFI_HII_PACKAGE_HEADER              EndofPackageList;\r
 \r
-  ASSERT (Private != NULL || PackageList != NULL || UsedSize != NULL);\r
+  ASSERT (Private != NULL && PackageList != NULL && UsedSize != NULL);\r
   ASSERT (Private->Signature == HII_DATABASE_PRIVATE_DATA_SIGNATURE);\r
   ASSERT (IsHiiHandleValid (Handle));\r
 \r
@@ -2957,7 +2958,7 @@ HiiUpdatePackageList (
         case EFI_HII_PACKAGE_TYPE_GUID:\r
           Status = RemoveGuidPackages (Private, Handle, OldPackageList);\r
           break;\r
-        case EFI_HII_PACKAGE_FORM:\r
+        case EFI_HII_PACKAGE_FORMS:\r
           Status = RemoveFormPackages (Private, Handle, OldPackageList);\r
           break;\r
         case EFI_HII_PACKAGE_KEYBOARD_LAYOUT:\r
@@ -3087,7 +3088,7 @@ HiiListPackageLists (
           }\r
         }\r
         break;\r
-      case EFI_HII_PACKAGE_FORM:\r
+      case EFI_HII_PACKAGE_FORMS:\r
         if (!IsListEmpty (&PackageList->FormPkgHdr)) {\r
           Matched = TRUE;\r
         }\r
@@ -3228,8 +3229,7 @@ HiiExportPackageLists (
                  (EFI_HII_PACKAGE_LIST_HEADER *)((UINT8 *) Buffer + UsedSize)\r
                  );\r
       ASSERT_EFI_ERROR (Status);\r
-    }\r
-    else if (Handle != NULL && Node->Handle == Handle) {\r
+    } else if (Handle != NULL && Node->Handle == Handle) {\r
       Status = ExportPackageList (\r
                  Private,\r
                  Handle,\r