}\r
}\r
\r
- if (Data->DataCount != 0) {\r
- if (HandleMapEntry->IsPackageListWithOnlyStringPackages) {\r
- UefiHiiHandle = TagGuidToUefiIfrHiiHandle (Private, &HandleMapEntry->TagGuid);\r
+ if (HandleMapEntry->IsPackageListWithOnlyStringPackages) {\r
+ UefiHiiHandle = TagGuidToUefiIfrHiiHandle (Private, &HandleMapEntry->TagGuid);\r
+ \r
+ if (UefiHiiHandle == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+ } else {\r
+ UefiHiiHandle = HandleMapEntry->UefiHiiHandle;\r
+ }\r
\r
- if (UefiHiiHandle == NULL) {\r
- return EFI_INVALID_PARAMETER;\r
- }\r
+ UefiHiiUpdateData = NULL;\r
+\r
+ if (AddData) {\r
+ if (Data->DataCount != 0) {\r
+ \r
+ Status = ThunkFrameworkUpdateDataToUefiUpdateData (Data, AddData, &UefiHiiUpdateData);\r
+ ASSERT_EFI_ERROR (Status);\r
+\r
+ Status = ThunkLocateFormId (UefiHiiHandle, Label, &FormsetGuid, &FormId);\r
+ ASSERT_EFI_ERROR (Status);\r
+\r
+ Status = IfrLibUpdateForm (UefiHiiHandle, &FormsetGuid, FormId, Label, AddData, UefiHiiUpdateData);\r
+ ASSERT_EFI_ERROR (Status);\r
+ \r
} else {\r
- UefiHiiHandle = HandleMapEntry->UefiHiiHandle;\r
+ ASSERT (FALSE);\r
+ return EFI_INVALID_PARAMETER;\r
}\r
-\r
- UefiHiiUpdateData = NULL;\r
\r
- Status = ThunkFrameworkUpdateDataToUefiUpdateData (Data, AddData, &UefiHiiUpdateData);\r
- ASSERT_EFI_ERROR (Status);\r
-\r
+ } else {\r
Status = ThunkLocateFormId (UefiHiiHandle, Label, &FormsetGuid, &FormId);\r
ASSERT_EFI_ERROR (Status);\r
\r
- Status = IfrLibUpdateForm (UefiHiiHandle, &FormsetGuid, FormId, Label, AddData, UefiHiiUpdateData);\r
- ASSERT_EFI_ERROR (Status);\r
+ //\r
+ // Delete Opcode starting from Labe in FormId found\r
+ //\r
\r
- if (UefiHiiUpdateData != NULL) {\r
- SafeFreePool (UefiHiiUpdateData->Data);\r
- SafeFreePool (UefiHiiUpdateData);\r
- }\r
+ Status = IfrLibUpdateForm (UefiHiiHandle, &FormsetGuid, FormId, Label, FALSE, NULL);\r
+ ASSERT_EFI_ERROR (Status);\r
+ }\r
+\r
+ if (UefiHiiUpdateData != NULL) {\r
+ SafeFreePool (UefiHiiUpdateData->Data);\r
+ SafeFreePool (UefiHiiUpdateData);\r
}\r
\r
return Status;\r