On 2016/2/15 17:07, Cinnamon Shia wrote:
Replace gBS->LocateHandle with gBS->LocateHandleBuffer
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Cinnamon Shia <cinnamon.s...@hpe.com>
---
PerformancePkg/Dp_App/DpTrace.c | 40 +++++++++-------------------------------
1 file changed, 9 insertions(+), 31 deletions(-)
Reviewed-by: Star Zeng <star.z...@intel.com>
diff --git a/PerformancePkg/Dp_App/DpTrace.c b/PerformancePkg/Dp_App/DpTrace.c
index d3df30f..632904f 100644
--- a/PerformancePkg/Dp_App/DpTrace.c
+++ b/PerformancePkg/Dp_App/DpTrace.c
@@ -2,7 +2,7 @@
Trace reporting for the Dp utility.
Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
- (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
+ (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
which accompanies this distribution. The full text of the license may be
found at
@@ -153,8 +153,7 @@ DumpAllTrace(
UINTN TIndex;
EFI_HANDLE *HandleBuffer;
- UINTN Size;
- EFI_HANDLE TempHandle;
+ UINTN HandleCount;
EFI_STATUS Status;
EFI_STRING StringPtrUnknown;
@@ -166,17 +165,7 @@ DumpAllTrace(
// Get Handle information
//
- Size = 0;
- HandleBuffer = &TempHandle;
- Status = gBS->LocateHandle (AllHandles, NULL, NULL, &Size, &TempHandle);
- if (Status == EFI_BUFFER_TOO_SMALL) {
- HandleBuffer = AllocatePool (Size);
- ASSERT (HandleBuffer != NULL);
- if (HandleBuffer == NULL) {
- return;
- }
- Status = gBS->LocateHandle (AllHandles, NULL, NULL, &Size, HandleBuffer);
- }
+ Status = gBS->LocateHandleBuffer (AllHandles, NULL, NULL, &HandleCount,
&HandleBuffer);
if (EFI_ERROR (Status)) {
PrintToken (STRING_TOKEN (STR_DP_HANDLES_ERROR), Status);
}
@@ -232,7 +221,7 @@ DumpAllTrace(
AsciiStrToUnicodeStr (Measurement.Token, mUnicodeToken);
if (Measurement.Handle != NULL) {
// See if the Handle is in the HandleBuffer
- for (TIndex = 0; TIndex < (Size / sizeof(HandleBuffer[0])); TIndex++) {
+ for (TIndex = 0; TIndex < HandleCount; TIndex++) {
if (Measurement.Handle == HandleBuffer[TIndex]) {
GetNameFromHandle (HandleBuffer[TIndex]);
break;
@@ -270,7 +259,7 @@ DumpAllTrace(
}
}
}
- if (HandleBuffer != &TempHandle) {
+ if (HandleBuffer != NULL) {
FreePool (HandleBuffer);
}
SafeFreePool ((VOID *) IncFlag);
@@ -536,8 +525,7 @@ ProcessHandles(
UINTN Index;
UINTN LogEntryKey;
UINTN Count;
- UINTN Size;
- EFI_HANDLE TempHandle;
+ UINTN HandleCount;
EFI_STATUS Status;
EFI_STRING StringPtrUnknown;
@@ -548,17 +536,7 @@ ProcessHandles(
FreePool (StringPtr);
FreePool (StringPtrUnknown);
- Size = 0;
- HandleBuffer = &TempHandle;
- Status = gBS->LocateHandle (AllHandles, NULL, NULL, &Size, &TempHandle);
- if (Status == EFI_BUFFER_TOO_SMALL) {
- HandleBuffer = AllocatePool (Size);
- ASSERT (HandleBuffer != NULL);
- if (HandleBuffer == NULL) {
- return Status;
- }
- Status = gBS->LocateHandle (AllHandles, NULL, NULL, &Size, HandleBuffer);
- }
+ Status = gBS->LocateHandleBuffer (AllHandles, NULL, NULL, &HandleCount,
&HandleBuffer);
if (EFI_ERROR (Status)) {
PrintToken (STRING_TOKEN (STR_DP_HANDLES_ERROR), Status);
}
@@ -598,7 +576,7 @@ ProcessHandles(
mGaugeString[0] = 0; // Empty driver name by default
AsciiStrToUnicodeStr (Measurement.Token, mUnicodeToken);
// See if the Handle is in the HandleBuffer
- for (Index = 0; Index < (Size / sizeof(HandleBuffer[0])); Index++) {
+ for (Index = 0; Index < HandleCount; Index++) {
if (Measurement.Handle == HandleBuffer[Index]) {
GetNameFromHandle (HandleBuffer[Index]); // Name is put into
mGaugeString
break;
@@ -632,7 +610,7 @@ ProcessHandles(
}
}
}
- if (HandleBuffer != &TempHandle) {
+ if (HandleBuffer != NULL) {
FreePool (HandleBuffer);
}
return Status;
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel