diff options
author | xli24 <xli24@6f19259b-4bc3-4df7-8a09-765794883524> | 2007-01-11 06:37:39 +0000 |
---|---|---|
committer | xli24 <xli24@6f19259b-4bc3-4df7-8a09-765794883524> | 2007-01-11 06:37:39 +0000 |
commit | 0e7bfce8d0dc29695d0eb141f16e7976abcc5486 (patch) | |
tree | 95fe6aa7b9b40994b538b451f0c3a4fe16d0a6b4 /EdkNt32Pkg/Dxe/PlatformBds/Generic/DeviceMngr | |
parent | c271c1326b7aacf837a75407233da97d6caada34 (diff) | |
download | edk2-0e7bfce8d0dc29695d0eb141f16e7976abcc5486.zip edk2-0e7bfce8d0dc29695d0eb141f16e7976abcc5486.tar.gz edk2-0e7bfce8d0dc29695d0eb141f16e7976abcc5486.tar.bz2 |
BDS code calls Hii->FindHandles() with hardcoded length.
New code provides function BdsLibGetHiiHandles() in generic BDS library, which detects actual necessary memory, allocates memory, and finds handles as output.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2216 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'EdkNt32Pkg/Dxe/PlatformBds/Generic/DeviceMngr')
-rw-r--r-- | EdkNt32Pkg/Dxe/PlatformBds/Generic/DeviceMngr/DeviceManager.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/EdkNt32Pkg/Dxe/PlatformBds/Generic/DeviceMngr/DeviceManager.c b/EdkNt32Pkg/Dxe/PlatformBds/Generic/DeviceMngr/DeviceManager.c index c186fee..2da9c6f 100644 --- a/EdkNt32Pkg/Dxe/PlatformBds/Generic/DeviceMngr/DeviceManager.c +++ b/EdkNt32Pkg/Dxe/PlatformBds/Generic/DeviceMngr/DeviceManager.c @@ -201,6 +201,7 @@ Returns: IfrOptionList = NULL;
VideoOption = NULL;
+ HiiHandles = NULL;
HandleBufferLength = 0;
//
@@ -268,8 +269,11 @@ Returns: CreateSubTitleOpCode (STR_EMPTY_STRING, &UpdateData->Data);
Hii->UpdateForm (Hii, FPCallbackInfo.DevMgrHiiHandle, (EFI_FORM_LABEL) Count, TRUE, UpdateData);
- HiiHandles = AllocateZeroPool (HandleBufferLength);
- Hii->FindHandles (Hii, &HandleBufferLength, HiiHandles);
+ //
+ // Get all the Hii handles
+ //
+ Status = BdsLibGetHiiHandles (Hii, &HandleBufferLength, &HiiHandles);
+ ASSERT_EFI_ERROR (Status);
for (Index = 1, BufferSize = 0; Index < HandleBufferLength; Index++) {
//
@@ -487,6 +491,7 @@ Returns: }
gBS->FreePool (UpdateData);
+ gBS->FreePool (HiiHandles);
return Status;
}
|