Add in code to support the deletion of opcode from a form.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5153 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qwang12 2008-04-30 06:35:24 +00:00
parent 5391c4f160
commit f274810c8d
2 changed files with 38 additions and 20 deletions

View File

@ -435,7 +435,6 @@ Returns:
} }
} }
if (Data->DataCount != 0) {
if (HandleMapEntry->IsPackageListWithOnlyStringPackages) { if (HandleMapEntry->IsPackageListWithOnlyStringPackages) {
UefiHiiHandle = TagGuidToUefiIfrHiiHandle (Private, &HandleMapEntry->TagGuid); UefiHiiHandle = TagGuidToUefiIfrHiiHandle (Private, &HandleMapEntry->TagGuid);
@ -448,6 +447,9 @@ Returns:
UefiHiiUpdateData = NULL; UefiHiiUpdateData = NULL;
if (AddData) {
if (Data->DataCount != 0) {
Status = ThunkFrameworkUpdateDataToUefiUpdateData (Data, AddData, &UefiHiiUpdateData); Status = ThunkFrameworkUpdateDataToUefiUpdateData (Data, AddData, &UefiHiiUpdateData);
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
@ -457,11 +459,27 @@ Returns:
Status = IfrLibUpdateForm (UefiHiiHandle, &FormsetGuid, FormId, Label, AddData, UefiHiiUpdateData); Status = IfrLibUpdateForm (UefiHiiHandle, &FormsetGuid, FormId, Label, AddData, UefiHiiUpdateData);
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
} else {
ASSERT (FALSE);
return EFI_INVALID_PARAMETER;
}
} else {
Status = ThunkLocateFormId (UefiHiiHandle, Label, &FormsetGuid, &FormId);
ASSERT_EFI_ERROR (Status);
//
// Delete Opcode starting from Labe in FormId found
//
Status = IfrLibUpdateForm (UefiHiiHandle, &FormsetGuid, FormId, Label, FALSE, NULL);
ASSERT_EFI_ERROR (Status);
}
if (UefiHiiUpdateData != NULL) { if (UefiHiiUpdateData != NULL) {
SafeFreePool (UefiHiiUpdateData->Data); SafeFreePool (UefiHiiUpdateData->Data);
SafeFreePool (UefiHiiUpdateData); SafeFreePool (UefiHiiUpdateData);
} }
}
return Status; return Status;
} }

View File

@ -595,7 +595,7 @@ F2UCreateNumericOpCode (
} }
// //
// We need to create a default // We need to create a default value.
// //
if (FwOpcode->Default != 0) { if (FwOpcode->Default != 0) {
ZeroMem (&UOpcodeDefault, sizeof (UOpcodeDefault)); ZeroMem (&UOpcodeDefault, sizeof (UOpcodeDefault));