diff options
author | lgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-04-20 08:12:38 +0000 |
---|---|---|
committer | lgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-04-20 08:12:38 +0000 |
commit | 6412128af3f7a7e118605109713edf2f3dae3bd6 (patch) | |
tree | 3111be7ee1a5e165b06654ebf0c0b180ed2eb0fb | |
parent | 2fd618df9dff28e18b553a6e5027470fe58eb61d (diff) | |
download | edk2-6412128af3f7a7e118605109713edf2f3dae3bd6.zip edk2-6412128af3f7a7e118605109713edf2f3dae3bd6.tar.gz edk2-6412128af3f7a7e118605109713edf2f3dae3bd6.tar.bz2 |
Enhance HiiGetBrowserData API to support the case that storage element is 0.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8135 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r-- | IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c | 4 | ||||
-rw-r--r-- | MdeModulePkg/Library/UefiHiiLib/HiiLib.c | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c b/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c index 2b175a5..982db88 100644 --- a/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c +++ b/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c @@ -273,7 +273,7 @@ BootMaintCallback ( //
CurrentFakeNVMap = (BMM_FAKE_NV_DATA *) HiiGetBrowserData (&mBootMaintGuid, mBootMaintStorageName, sizeof (BMM_FAKE_NV_DATA));
if (CurrentFakeNVMap == NULL) {
- CurrentFakeNVMap = &Private->BmmFakeNvData;
+ return EFI_NOT_FOUND;
}
//
@@ -590,7 +590,7 @@ BootMaintCallback ( //
// Update local settting.
//
- if ((UINTN) CurrentFakeNVMap != (UINTN) &Private->BmmFakeNvData) {
+ if (CurrentFakeNVMap != NULL) {
CopyMem (&Private->BmmFakeNvData, CurrentFakeNVMap, sizeof (BMM_FAKE_NV_DATA));
FreePool (CurrentFakeNVMap);
}
diff --git a/MdeModulePkg/Library/UefiHiiLib/HiiLib.c b/MdeModulePkg/Library/UefiHiiLib/HiiLib.c index d36828a..ea3c223 100644 --- a/MdeModulePkg/Library/UefiHiiLib/HiiLib.c +++ b/MdeModulePkg/Library/UefiHiiLib/HiiLib.c @@ -564,6 +564,15 @@ InternalHiiBrowserCallback ( VariableGuid,
VariableName
);
+
+ if (!EFI_ERROR (Status)) {
+ //
+ // No Resluts Data, only allocate one char for '\0'
+ //
+ ResultsData = AllocateZeroPool (sizeof (CHAR16));
+ return ResultsData;
+ }
+
if (Status != EFI_BUFFER_TOO_SMALL) {
return NULL;
}
|