On 2016/2/15 17:49, Zeng, Star wrote:
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>

Committed at aae1a87555ed4a433fdf980085aa6e73ae27c576.



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

Reply via email to