]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Retire RFC_3066_ENTRY_SIZE definition.
authorqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 27 Mar 2009 03:24:58 +0000 (03:24 +0000)
committerqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 27 Mar 2009 03:24:58 +0000 (03:24 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7966 6f19259b-4bc3-4df7-8a09-765794883524

EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/HiiDatabase.c
EdkCompatibilityPkg/Compatibility/Uc2OnUcThunk/Uc2OnUcThunk.c

index 1bf17c174ca033e331fecd97e2058fd891ab4c62..4572254d2c715cc232517e261148907417d36794 100644 (file)
@@ -312,7 +312,7 @@ LangCodes3066To639 (
   )\r
 {\r
   CHAR8                      *AsciiLangCodes;\r
-  CHAR8                      Lang[RFC_3066_ENTRY_SIZE];\r
+  CHAR8                      *Lang;\r
   UINTN                      Index;\r
   UINTN                      Count;\r
   EFI_STATUS                 Status;\r
@@ -320,6 +320,14 @@ LangCodes3066To639 (
   ASSERT (LangCodes3066 != NULL);\r
   ASSERT (LangCodes639 != NULL);\r
   \r
+  //\r
+  // Allocate working buffer to contain substring of LangCodes3066.\r
+  //\r
+  Lang = AllocatePool (AsciiStrSize (LangCodes3066));\r
+  if (Lang != NULL) {\r
+    return EFI_OUT_OF_RESOURCES;\r
+  }\r
+\r
   //\r
   // Count the number of RFC 3066 language codes.\r
   //\r
@@ -337,7 +345,8 @@ LangCodes3066To639 (
   //\r
   *LangCodes639 = AllocateZeroPool (ISO_639_2_ENTRY_SIZE * Count + 1);\r
   if (*LangCodes639 == NULL) {\r
-    return EFI_OUT_OF_RESOURCES;\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto Done;\r
   }\r
 \r
   AsciiLangCodes = LangCodes3066;\r
@@ -348,7 +357,11 @@ LangCodes3066To639 (
     ASSERT_EFI_ERROR (Status);\r
   }\r
 \r
-  return EFI_SUCCESS;\r
+  Status = EFI_SUCCESS;\r
+\r
+Done:\r
+  FreePool (Lang);\r
+  return Status;\r
 }\r
 \r
 /**\r
@@ -454,9 +467,9 @@ HiiGetSecondaryLanguages (
   OUT EFI_STRING                    *LanguageString\r
   )\r
 {\r
-  HII_THUNK_PRIVATE_DATA *Private;\r
+  HII_THUNK_PRIVATE_DATA     *Private;\r
   EFI_HII_HANDLE             UefiHiiHandle;\r
-  CHAR8                      PrimaryLang3066[RFC_3066_ENTRY_SIZE];\r
+  CHAR8                      *PrimaryLang3066;\r
   CHAR8                      *PrimaryLang639;\r
   CHAR8                      *SecLangCodes3066;\r
   CHAR8                      *SecLangCodes639;\r
@@ -465,8 +478,9 @@ HiiGetSecondaryLanguages (
 \r
   Private = HII_THUNK_PRIVATE_DATA_FROM_THIS(This);\r
 \r
-  SecLangCodes639         = NULL;\r
-  SecLangCodes3066        = NULL;\r
+  SecLangCodes639        = NULL;\r
+  SecLangCodes3066       = NULL;\r
+  PrimaryLang3066        = NULL;\r
   UnicodeSecLangCodes639 = NULL;\r
 \r
   UefiHiiHandle = FwHiiHandleToUefiHiiHandle (Private, Handle);\r
@@ -482,8 +496,8 @@ HiiGetSecondaryLanguages (
 \r
   UnicodeStrToAsciiStr (PrimaryLanguage, PrimaryLang639);\r
 \r
-  Status = ConvertIso639LanguageToRfc3066Language (PrimaryLang639, PrimaryLang3066);\r
-  ASSERT_EFI_ERROR (Status);\r
+  PrimaryLang3066 = ConvertIso639LanguageToRfc3066Language (PrimaryLang639);\r
+  ASSERT_EFI_ERROR (PrimaryLang3066 != NULL);\r
 \r
   SecLangCodes3066 = HiiLibGetSupportedSecondaryLanguages (UefiHiiHandle, PrimaryLang3066);\r
 \r
@@ -512,9 +526,15 @@ Done:
   if (PrimaryLang639 != NULL) {\r
     FreePool (PrimaryLang639);\r
   }\r
+\r
   if (SecLangCodes639 != NULL) {\r
     FreePool (SecLangCodes639);\r
   }\r
+\r
+  if (PrimaryLang3066 != NULL) {\r
+    FreePool (PrimaryLang3066);\r
+  }\r
+\r
   if (SecLangCodes3066 != NULL) {\r
     FreePool (SecLangCodes3066);\r
   }\r
index b8cfd5dc66017f13f10176de31b04b82149ded8e..4ab74bad837df7bbb3948189543d2da8b57b9eb4 100644 (file)
@@ -248,10 +248,8 @@ UcNotificationEvent (
     //\r
     // Fill in rest of private data structure\r
     //\r
-    Private->UC2.SupportedLanguages = AllocateZeroPool (RFC_3066_ENTRY_SIZE);\r
-    Status = ConvertIso639LanguageToRfc3066Language (Private->UC->SupportedLanguages, Private->UC2.SupportedLanguages);\r
-\r
-    if (!EFI_ERROR (Status)) {\r
+    Private->UC2.SupportedLanguages = ConvertIso639LanguageToRfc3066Language (Private->UC->SupportedLanguages);\r
+    if (Private->UC2.SupportedLanguages != NULL) {\r
 \r
       //\r
       // Install Firmware Volume Protocol onto same handle\r