Update HiiDataBase to fix parsing Hii package error. Some HiiPackages have no varstore and question, they has no the built in default value.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8314 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lgao4
2009-05-14 12:37:02 +00:00
parent 84f9a9ec8f
commit 76c2425177
4 changed files with 54 additions and 26 deletions

View File

@@ -1177,6 +1177,11 @@ InternalHiiValidateCurrentSetting (
}
Link = Link->ForwardLink;
}
if (IsListEmpty (&CurrentBlockArray->Entry)) {
Status = EFI_SUCCESS;
goto Done;
}
//
// 2. Check IFR value is in block data, then Validate Vaule
@@ -1233,7 +1238,7 @@ InternalHiiValidateCurrentSetting (
// Check the matched VarStoreId is found.
//
if (IfrVarStore == NULL) {
Status = EFI_NOT_FOUND;
Status = EFI_SUCCESS;
goto Done;
}
break;
@@ -1580,7 +1585,7 @@ BOOLEAN
EFIAPI
InternalHiiIfrValueAction (
IN CONST EFI_STRING Request, OPTIONAL
IN UINT16 DefaultId,
IN UINT16 DefaultId,
IN UINT8 ActionType
)
{
@@ -1738,6 +1743,7 @@ InternalHiiIfrValueAction (
// Its default value and validating can't execute by parsing IFR data.
// Directly jump into the next ConfigAltResp string for another pair Guid, Name, and Path.
//
Status = EFI_SUCCESS;
goto NextConfigAltResp;
}
@@ -1819,7 +1825,8 @@ InternalHiiIfrValueAction (
// Not found the matched default string ID
//
if (EFI_ERROR (Status)) {
goto Done;
Status = EFI_SUCCESS;
goto NextConfigAltResp;
}
}
@@ -1838,7 +1845,8 @@ InternalHiiIfrValueAction (
);
if (EFI_ERROR (Status)) {
goto Done;
Status = EFI_SUCCESS;
goto NextConfigAltResp;
}
//
@@ -1861,6 +1869,7 @@ InternalHiiIfrValueAction (
goto Done;
}
NextConfigAltResp:
//
// Free the allocated pacakge buffer and the got ConfigResp string.
//
@@ -1868,11 +1877,12 @@ InternalHiiIfrValueAction (
FreePool (HiiPackageList);
HiiPackageList = NULL;
}
if (ConfigResp != NULL) {
FreePool (ConfigResp);
ConfigResp = NULL;
}
FreePool (ConfigResp);
ConfigResp = NULL;
NextConfigAltResp:
//
// Free the allocated buffer.
//