summaryrefslogtreecommitdiff
path: root/EdkCompatibilityPkg/Compatibility
diff options
context:
space:
mode:
Diffstat (limited to 'EdkCompatibilityPkg/Compatibility')
-rw-r--r--EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c54
-rw-r--r--EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/OpcodeCreation.c2
2 files changed, 37 insertions, 19 deletions
diff --git a/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c b/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c
index 95bd618bb6..ee4e2ac988 100644
--- a/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c
+++ b/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/Forms.c
@@ -435,32 +435,50 @@ Returns:
}
}
- if (Data->DataCount != 0) {
- if (HandleMapEntry->IsPackageListWithOnlyStringPackages) {
- UefiHiiHandle = TagGuidToUefiIfrHiiHandle (Private, &HandleMapEntry->TagGuid);
+ if (HandleMapEntry->IsPackageListWithOnlyStringPackages) {
+ UefiHiiHandle = TagGuidToUefiIfrHiiHandle (Private, &HandleMapEntry->TagGuid);
+
+ if (UefiHiiHandle == NULL) {
+ return EFI_INVALID_PARAMETER;
+ }
+ } else {
+ UefiHiiHandle = HandleMapEntry->UefiHiiHandle;
+ }
- if (UefiHiiHandle == NULL) {
- return EFI_INVALID_PARAMETER;
- }
+ UefiHiiUpdateData = NULL;
+
+ if (AddData) {
+ if (Data->DataCount != 0) {
+
+ Status = ThunkFrameworkUpdateDataToUefiUpdateData (Data, AddData, &UefiHiiUpdateData);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = ThunkLocateFormId (UefiHiiHandle, Label, &FormsetGuid, &FormId);
+ ASSERT_EFI_ERROR (Status);
+
+ Status = IfrLibUpdateForm (UefiHiiHandle, &FormsetGuid, FormId, Label, AddData, UefiHiiUpdateData);
+ ASSERT_EFI_ERROR (Status);
+
} else {
- UefiHiiHandle = HandleMapEntry->UefiHiiHandle;
+ ASSERT (FALSE);
+ return EFI_INVALID_PARAMETER;
}
-
- UefiHiiUpdateData = NULL;
- Status = ThunkFrameworkUpdateDataToUefiUpdateData (Data, AddData, &UefiHiiUpdateData);
- ASSERT_EFI_ERROR (Status);
-
+ } else {
Status = ThunkLocateFormId (UefiHiiHandle, Label, &FormsetGuid, &FormId);
ASSERT_EFI_ERROR (Status);
- Status = IfrLibUpdateForm (UefiHiiHandle, &FormsetGuid, FormId, Label, AddData, UefiHiiUpdateData);
- ASSERT_EFI_ERROR (Status);
+ //
+ // Delete Opcode starting from Labe in FormId found
+ //
- if (UefiHiiUpdateData != NULL) {
- SafeFreePool (UefiHiiUpdateData->Data);
- SafeFreePool (UefiHiiUpdateData);
- }
+ Status = IfrLibUpdateForm (UefiHiiHandle, &FormsetGuid, FormId, Label, FALSE, NULL);
+ ASSERT_EFI_ERROR (Status);
+ }
+
+ if (UefiHiiUpdateData != NULL) {
+ SafeFreePool (UefiHiiUpdateData->Data);
+ SafeFreePool (UefiHiiUpdateData);
}
return Status;
diff --git a/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/OpcodeCreation.c b/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/OpcodeCreation.c
index fb6169b29c..391e698d1e 100644
--- a/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/OpcodeCreation.c
+++ b/EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/OpcodeCreation.c
@@ -595,7 +595,7 @@ F2UCreateNumericOpCode (
}
//
- // We need to create a default
+ // We need to create a default value.
//
if (FwOpcode->Default != 0) {
ZeroMem (&UOpcodeDefault, sizeof (UOpcodeDefault));