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,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;
}
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);
if (UefiHiiHandle == NULL) {
return EFI_INVALID_PARAMETER;
}
} 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;

View File

@ -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));