]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/HiiLib/HiiString.c
Fix a bug in the assert condition.
[mirror_edk2.git] / MdePkg / Library / HiiLib / HiiString.c
index 05e9aa8b6829b27bb9ed6ea575d7dabad9213d70..af867e1a1aaf9100db30ac2d68b2897b335ca12b 100644 (file)
@@ -57,6 +57,10 @@ HiiLibNewString (
   while (*LangStrings != 0) {\r
     HiiLibGetNextLanguage (&LangStrings, Lang);\r
 \r
   while (*LangStrings != 0) {\r
     HiiLibGetNextLanguage (&LangStrings, Lang);\r
 \r
+    //\r
+    // For each language supported by the package,\r
+    // a string token is created.\r
+    //\r
     Status = mHiiStringProt->NewString (\r
                                  mHiiStringProt,\r
                                  PackageList,\r
     Status = mHiiStringProt->NewString (\r
                                  mHiiStringProt,\r
                                  PackageList,\r
@@ -119,6 +123,10 @@ HiiLibSetString (
   while (*LangStrings != 0) {\r
     HiiLibGetNextLanguage (&LangStrings, Lang);\r
 \r
   while (*LangStrings != 0) {\r
     HiiLibGetNextLanguage (&LangStrings, Lang);\r
 \r
+    //\r
+    // For each language supported by the package,\r
+    // the string is updated.\r
+    //\r
     Status = mHiiStringProt->SetString (\r
                                  mHiiStringProt,\r
                                  PackageList,\r
     Status = mHiiStringProt->SetString (\r
                                  mHiiStringProt,\r
                                  PackageList,\r
@@ -195,7 +203,7 @@ HiiLibGetStringFromToken (
 \r
 Out:\r
   if (HiiHandleBuffer != NULL) {\r
 \r
 Out:\r
   if (HiiHandleBuffer != NULL) {\r
-    gBS->FreePool (HiiHandleBuffer);\r
+    FreePool (HiiHandleBuffer);\r
   }\r
   return Status;\r
 }\r
   }\r
   return Status;\r
 }\r
@@ -204,8 +212,8 @@ Out:
   This function try to retrieve string from String package of current language.\r
   If fails, it try to retrieve string from String package of first language it support.\r
 \r
   This function try to retrieve string from String package of current language.\r
   If fails, it try to retrieve string from String package of first language it support.\r
 \r
-  If String is NULL, then ASSERT.\r
   If StringSize is NULL, then ASSERT.\r
   If StringSize is NULL, then ASSERT.\r
+  If String is NULL and *StringSize is not 0, then ASSERT.\r
   If PackageList could not be found in the default HII database, then ASSERT.\r
   If StringId is not found in PackageList, then ASSERT.\r
 \r
   If PackageList could not be found in the default HII database, then ASSERT.\r
   If StringId is not found in PackageList, then ASSERT.\r
 \r
@@ -222,7 +230,6 @@ Out:
   @retval EFI_NOT_FOUND          The string specified by StringId is not available.\r
   @retval EFI_BUFFER_TOO_SMALL   The buffer specified by StringLength is too small\r
                                  to hold the string.\r
   @retval EFI_NOT_FOUND          The string specified by StringId is not available.\r
   @retval EFI_BUFFER_TOO_SMALL   The buffer specified by StringLength is too small\r
                                  to hold the string.\r
-  @retval EFI_INVALID_PARAMETER  The String or StringSize was NULL.\r
 \r
 **/\r
 EFI_STATUS\r
 \r
 **/\r
 EFI_STATUS\r
@@ -240,8 +247,8 @@ HiiLibGetString (
   CHAR8       Lang[RFC_3066_ENTRY_SIZE];\r
   CHAR8       CurrentLang[RFC_3066_ENTRY_SIZE];\r
 \r
   CHAR8       Lang[RFC_3066_ENTRY_SIZE];\r
   CHAR8       CurrentLang[RFC_3066_ENTRY_SIZE];\r
 \r
-  ASSERT (String != NULL);\r
   ASSERT (StringSize != NULL);\r
   ASSERT (StringSize != NULL);\r
+  ASSERT (!(*StringSize != 0 && String == NULL));\r
   ASSERT (IsHiiHandleRegistered (PackageList));\r
 \r
   HiiLibGetCurrentLanguage (CurrentLang);\r
   ASSERT (IsHiiHandleRegistered (PackageList));\r
 \r
   HiiLibGetCurrentLanguage (CurrentLang);\r
@@ -262,7 +269,7 @@ HiiLibGetString (
     \r
     LangStrings = Languages;\r
     HiiLibGetNextLanguage (&LangStrings, Lang);\r
     \r
     LangStrings = Languages;\r
     HiiLibGetNextLanguage (&LangStrings, Lang);\r
-    gBS->FreePool (Languages);\r
+    FreePool (Languages);\r
 \r
     Status = mHiiStringProt->GetString (\r
                                  mHiiStringProt,\r
 \r
     Status = mHiiStringProt->GetString (\r
                                  mHiiStringProt,\r
@@ -318,7 +325,7 @@ HiiLibGetStringFromHandle (
 \r
   Status = HiiLibGetString (HiiHandle, StringId, *String, &StringSize);\r
   if (Status == EFI_BUFFER_TOO_SMALL) {\r
 \r
   Status = HiiLibGetString (HiiHandle, StringId, *String, &StringSize);\r
   if (Status == EFI_BUFFER_TOO_SMALL) {\r
-    gBS->FreePool (*String);\r
+    FreePool (*String);\r
     *String = AllocateZeroPool (StringSize);\r
     if (*String == NULL) {\r
       return EFI_OUT_OF_RESOURCES;\r
     *String = AllocateZeroPool (StringSize);\r
     if (*String == NULL) {\r
       return EFI_OUT_OF_RESOURCES;\r
@@ -336,7 +343,7 @@ HiiLibGetStringFromHandle (
 // Each entry is 5 CHAR8 values long.  The first 3 CHAR8 values are the ISO 639-2 code.\r
 // The last 2 CHAR8 values are the ISO 639-1 code.\r
 //\r
 // Each entry is 5 CHAR8 values long.  The first 3 CHAR8 values are the ISO 639-2 code.\r
 // The last 2 CHAR8 values are the ISO 639-1 code.\r
 //\r
-CHAR8 Iso639ToRfc3066ConversionTable[] =\r
+GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 Iso639ToRfc3066ConversionTable[] =\r
 "\\r
 aaraa\\r
 abkab\\r
 "\\r
 aaraa\\r
 abkab\\r