]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Package.c
1) Add in SharingStringPack to make UpdateString only create/update string token...
[mirror_edk2.git] / EdkCompatibilityPkg / Compatibility / FrameworkHiiToUefiHiiThunk / Package.c
index 0aa4773abe2b85af727b911eeb5d4873a80613f4..494a31dc539477b9533a50d89a01695e27838bba 100644 (file)
@@ -112,7 +112,7 @@ UpdatePackListWithOnlyIfrPack (
 {\r
   EFI_STATUS                 Status;\r
   LIST_ENTRY                 *Link;\r
-  HII_THUNK_CONTEXT *ThunkContext;\r
+  HII_THUNK_CONTEXT          *ThunkContext;\r
 \r
   Link = GetFirstNode (&Private->ThunkContextListHead);\r
   while (!IsNull (&Private->ThunkContextListHead, Link)) {\r
@@ -136,13 +136,16 @@ UpdatePackListWithOnlyIfrPack (
                                               StringPackageListHeader\r
                                               );\r
         ASSERT_EFI_ERROR (Status);\r
-        \r
+\r
+        ThunkContext->SharingStringPack = TRUE;\r
+        StringPackageThunkContext->SharingStringPack = TRUE;\r
+\r
       }\r
     }\r
     \r
     Link = GetNextNode (&Private->ThunkContextListHead, Link);\r
   }\r
-  \r
+\r
 }\r
 \r
 /**\r
@@ -387,8 +390,7 @@ FindStringPackAndUpdatePackListWithOnlyIfrPack (
   LIST_ENTRY                      *Link;\r
   EFI_HII_PACKAGE_LIST_HEADER     *StringPackageListHeader;\r
   UINTN                           Size;\r
-  HII_THUNK_CONTEXT                *ThunkContext;\r
-\r
+  HII_THUNK_CONTEXT               *ThunkContext;\r
   \r
   Link = GetFirstNode (&Private->ThunkContextListHead);\r
 \r
@@ -413,6 +415,10 @@ FindStringPackAndUpdatePackListWithOnlyIfrPack (
         ASSERT_EFI_ERROR (Status);\r
         \r
         FreePool (StringPackageListHeader);\r
+\r
+        IfrThunkContext->SharingStringPack = TRUE;\r
+        ThunkContext->SharingStringPack = TRUE;\r
+        \r
         return EFI_SUCCESS;\r
 \r
       }\r
@@ -421,6 +427,11 @@ FindStringPackAndUpdatePackListWithOnlyIfrPack (
     Link = GetNextNode (&Private->ThunkContextListHead, Link);\r
   }\r
 \r
+  //\r
+  // A Form Package must have a String Package to function.\r
+  // If ASSERT here, check the sequence of call to Hii->NewPack. \r
+  // String Pack must be registered before Ifr Package is registered.\r
+  //\r
   ASSERT (FALSE);\r
   return EFI_NOT_FOUND;\r
   \r