]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Foundation/Library/Dxe/UefiEfiIfrSupportLib/UefiIfrString.c
Sync all bug fixes between EDK1.04 and EDK1.06 into EdkCompatibilityPkg.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / Dxe / UefiEfiIfrSupportLib / UefiIfrString.c
index 0a5739965aa84009a0ea7207f2c801b57ac93742..ece78bfb441624a6b0bc83adb7d1bbb384975767 100644 (file)
@@ -555,20 +555,37 @@ IfrLibNewString (
   if (Languages == NULL) {\r
     return EFI_NOT_FOUND;\r
   }\r
+  \r
+  if (StringId == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+  *StringId = 0;\r
 \r
   LangStrings = Languages;\r
   while (*LangStrings != 0) {\r
     GetNextLanguage (&LangStrings, Lang);\r
 \r
-    Status = gIfrLibHiiString->NewString (\r
-                                 gIfrLibHiiString,\r
-                                 PackageList,\r
-                                 StringId,\r
-                                 Lang,\r
-                                 NULL,\r
-                                 String,\r
-                                 NULL\r
-                                 );\r
+    if (*StringId == 0) {\r
+      Status = gIfrLibHiiString->NewString (\r
+                                   gIfrLibHiiString,\r
+                                   PackageList,\r
+                                   StringId,\r
+                                   Lang,\r
+                                   NULL,\r
+                                   String,\r
+                                   NULL\r
+                                   );\r
+    } else {\r
+      Status = gIfrLibHiiString->SetString (\r
+                                   gIfrLibHiiString,\r
+                                   PackageList,\r
+                                   *StringId,\r
+                                   Lang,\r
+                                   String,\r
+                                   NULL\r
+                                   );\r
+    }\r
+\r
     if (EFI_ERROR (Status)) {\r
       break;\r
     }\r