[edk2-devel] [edk2-redfish-client][PATCH v2 05/11] RedfishClientPkg: reduce identation level by adding early return

Mike Maslenkin mike.maslenkin at gmail.com
Thu Oct 26 23:53:48 UTC 2023


This functions contain memory leaks.
Less identation helps to solve this issues.

Signed-off-by: Mike Maslenkin <mike.maslenkin at gmail.com>
---
 .../RedfishFeatureUtilityLib.c                | 289 +++++++++---------
 1 file changed, 146 insertions(+), 143 deletions(-)

diff --git a/RedfishClientPkg/Library/RedfishFeatureUtilityLib/RedfishFeatureUtilityLib.c b/RedfishClientPkg/Library/RedfishFeatureUtilityLib/RedfishFeatureUtilityLib.c
index 8fa1dc2c3535..0941f33fd73a 100644
--- a/RedfishClientPkg/Library/RedfishFeatureUtilityLib/RedfishFeatureUtilityLib.c
+++ b/RedfishClientPkg/Library/RedfishFeatureUtilityLib/RedfishFeatureUtilityLib.c
@@ -763,68 +763,69 @@ ApplyFeatureSettingsStringArrayType (
   Status = RedfishPlatformConfigGetValue (Schema, Version, ConfigureLang, &RedfishValue);
   if (EFI_ERROR (Status)) {
     DEBUG ((DEBUG_ERROR, "%a, %a.%a %s failed: %r\n", __func__, Schema, Version, ConfigureLang, Status));
-  } else {
-    if (RedfishValue.Type != RedfishValueTypeStringArray) {
-      DEBUG ((DEBUG_ERROR, "%a, %a.%a %s value is not string array type\n", __func__, Schema, Version, ConfigureLang));
-      return EFI_DEVICE_ERROR;
-    }
+    return Status;
+  }
+
+  if (RedfishValue.Type != RedfishValueTypeStringArray) {
+    DEBUG ((DEBUG_ERROR, "%a, %a.%a %s value is not string array type\n", __func__, Schema, Version, ConfigureLang));
+    return EFI_DEVICE_ERROR;
+  }
 
+  //
+  // If there is no change in array, do nothing
+  //
+  if (!CompareRedfishStringArrayValues (ArrayHead, RedfishValue.Value.StringArray, RedfishValue.ArrayCount)) {
     //
-    // If there is no change in array, do nothing
+    // Apply settings from redfish
     //
-    if (!CompareRedfishStringArrayValues (ArrayHead, RedfishValue.Value.StringArray, RedfishValue.ArrayCount)) {
-      //
-      // Apply settings from redfish
-      //
-      DEBUG ((DEBUG_MANAGEABILITY, "%a, %a.%a apply %s for array\n", __func__, Schema, Version, ConfigureLang));
-      FreeArrayTypeRedfishValue (&RedfishValue);
+    DEBUG ((DEBUG_MANAGEABILITY, "%a, %a.%a apply %s for array\n", __func__, Schema, Version, ConfigureLang));
+    FreeArrayTypeRedfishValue (&RedfishValue);
 
-      //
-      // Convert array from RedfishCS_char_Array to EDKII_REDFISH_VALUE
-      //
-      RedfishValue.ArrayCount = 0;
-      Buffer                  = ArrayHead;
-      while (Buffer != NULL) {
-        RedfishValue.ArrayCount += 1;
-        Buffer                   = Buffer->Next;
-      }
+    //
+    // Convert array from RedfishCS_char_Array to EDKII_REDFISH_VALUE
+    //
+    RedfishValue.ArrayCount = 0;
+    Buffer                  = ArrayHead;
+    while (Buffer != NULL) {
+      RedfishValue.ArrayCount += 1;
+      Buffer                   = Buffer->Next;
+    }
 
-      //
-      // Allocate pool for new values
-      //
-      RedfishValue.Value.StringArray = AllocatePool (RedfishValue.ArrayCount *sizeof (CHAR8 *));
-      if (RedfishValue.Value.StringArray == NULL) {
+    //
+    // Allocate pool for new values
+    //
+    RedfishValue.Value.StringArray = AllocatePool (RedfishValue.ArrayCount *sizeof (CHAR8 *));
+    if (RedfishValue.Value.StringArray == NULL) {
+      ASSERT (FALSE);
+      return EFI_OUT_OF_RESOURCES;
+    }
+
+    Buffer = ArrayHead;
+    Index  = 0;
+    while (Buffer != NULL) {
+      RedfishValue.Value.StringArray[Index] = AllocateCopyPool (AsciiStrSize (Buffer->ArrayValue), Buffer->ArrayValue);
+      if (RedfishValue.Value.StringArray[Index] == NULL) {
         ASSERT (FALSE);
         return EFI_OUT_OF_RESOURCES;
       }
 
-      Buffer = ArrayHead;
-      Index  = 0;
-      while (Buffer != NULL) {
-        RedfishValue.Value.StringArray[Index] = AllocateCopyPool (AsciiStrSize (Buffer->ArrayValue), Buffer->ArrayValue);
-        if (RedfishValue.Value.StringArray[Index] == NULL) {
-          ASSERT (FALSE);
-          return EFI_OUT_OF_RESOURCES;
-        }
-
-        Buffer = Buffer->Next;
-        Index++;
-      }
+      Buffer = Buffer->Next;
+      Index++;
+    }
 
-      ASSERT (Index <= RedfishValue.ArrayCount);
+    ASSERT (Index <= RedfishValue.ArrayCount);
 
-      Status = RedfishPlatformConfigSetValue (Schema, Version, ConfigureLang, RedfishValue);
-      if (!EFI_ERROR (Status)) {
-        //
-        // Configuration changed. Enable system reboot flag.
-        //
-        REDFISH_ENABLE_SYSTEM_REBOOT ();
-      } else {
-        DEBUG ((DEBUG_ERROR, "%a, apply %s array failed: %r\n", __func__, ConfigureLang, Status));
-      }
+    Status = RedfishPlatformConfigSetValue (Schema, Version, ConfigureLang, RedfishValue);
+    if (!EFI_ERROR (Status)) {
+      //
+      // Configuration changed. Enable system reboot flag.
+      //
+      REDFISH_ENABLE_SYSTEM_REBOOT ();
     } else {
-      DEBUG ((DEBUG_ERROR, "%a, %a.%a %s array value has no change\n", __func__, Schema, Version, ConfigureLang));
+      DEBUG ((DEBUG_ERROR, "%a, apply %s array failed: %r\n", __func__, ConfigureLang, Status));
     }
+  } else {
+    DEBUG ((DEBUG_ERROR, "%a, %a.%a %s array value has no change\n", __func__, Schema, Version, ConfigureLang));
   }
 
   return Status;
@@ -866,63 +867,64 @@ ApplyFeatureSettingsNumericArrayType (
   Status = RedfishPlatformConfigGetValue (Schema, Version, ConfigureLang, &RedfishValue);
   if (EFI_ERROR (Status)) {
     DEBUG ((DEBUG_ERROR, "%a, %a.%a %s failed: %r\n", __func__, Schema, Version, ConfigureLang, Status));
-  } else {
-    if (RedfishValue.Type != RedfishValueTypeIntegerArray) {
-      DEBUG ((DEBUG_ERROR, "%a, %a.%a %s value is not string array type\n", __func__, Schema, Version, ConfigureLang));
-      return EFI_DEVICE_ERROR;
-    }
+    return Status;
+  }
+
+  if (RedfishValue.Type != RedfishValueTypeIntegerArray) {
+    DEBUG ((DEBUG_ERROR, "%a, %a.%a %s value is not string array type\n", __func__, Schema, Version, ConfigureLang));
+    return EFI_DEVICE_ERROR;
+  }
 
+  //
+  // If there is no change in array, do nothing
+  //
+  if (!CompareRedfishNumericArrayValues (ArrayHead, RedfishValue.Value.IntegerArray, RedfishValue.ArrayCount)) {
     //
-    // If there is no change in array, do nothing
+    // Apply settings from redfish
     //
-    if (!CompareRedfishNumericArrayValues (ArrayHead, RedfishValue.Value.IntegerArray, RedfishValue.ArrayCount)) {
-      //
-      // Apply settings from redfish
-      //
-      DEBUG ((DEBUG_MANAGEABILITY, "%a, %a.%a apply %s for array\n", __func__, Schema, Version, ConfigureLang));
-      FreeArrayTypeRedfishValue (&RedfishValue);
+    DEBUG ((DEBUG_MANAGEABILITY, "%a, %a.%a apply %s for array\n", __func__, Schema, Version, ConfigureLang));
+    FreeArrayTypeRedfishValue (&RedfishValue);
 
-      //
-      // Convert array from RedfishCS_int64_Array to EDKII_REDFISH_VALUE
-      //
-      RedfishValue.ArrayCount = 0;
-      Buffer                  = ArrayHead;
-      while (Buffer != NULL) {
-        RedfishValue.ArrayCount += 1;
-        Buffer                   = Buffer->Next;
-      }
+    //
+    // Convert array from RedfishCS_int64_Array to EDKII_REDFISH_VALUE
+    //
+    RedfishValue.ArrayCount = 0;
+    Buffer                  = ArrayHead;
+    while (Buffer != NULL) {
+      RedfishValue.ArrayCount += 1;
+      Buffer                   = Buffer->Next;
+    }
 
-      //
-      // Allocate pool for new values
-      //
-      RedfishValue.Value.IntegerArray = AllocatePool (RedfishValue.ArrayCount * sizeof (INT64));
-      if (RedfishValue.Value.IntegerArray == NULL) {
-        ASSERT (FALSE);
-        return EFI_OUT_OF_RESOURCES;
-      }
+    //
+    // Allocate pool for new values
+    //
+    RedfishValue.Value.IntegerArray = AllocatePool (RedfishValue.ArrayCount * sizeof (INT64));
+    if (RedfishValue.Value.IntegerArray == NULL) {
+      ASSERT (FALSE);
+      return EFI_OUT_OF_RESOURCES;
+    }
 
-      Buffer = ArrayHead;
-      Index  = 0;
-      while (Buffer != NULL) {
-        RedfishValue.Value.IntegerArray[Index] = (INT64)*Buffer->ArrayValue;
-        Buffer                                 = Buffer->Next;
-        Index++;
-      }
+    Buffer = ArrayHead;
+    Index  = 0;
+    while (Buffer != NULL) {
+      RedfishValue.Value.IntegerArray[Index] = (INT64)*Buffer->ArrayValue;
+      Buffer                                 = Buffer->Next;
+      Index++;
+    }
 
-      ASSERT (Index <= RedfishValue.ArrayCount);
+    ASSERT (Index <= RedfishValue.ArrayCount);
 
-      Status = RedfishPlatformConfigSetValue (Schema, Version, ConfigureLang, RedfishValue);
-      if (!EFI_ERROR (Status)) {
-        //
-        // Configuration changed. Enable system reboot flag.
-        //
-        REDFISH_ENABLE_SYSTEM_REBOOT ();
-      } else {
-        DEBUG ((DEBUG_ERROR, "%a, apply %s array failed: %r\n", __func__, ConfigureLang, Status));
-      }
+    Status = RedfishPlatformConfigSetValue (Schema, Version, ConfigureLang, RedfishValue);
+    if (!EFI_ERROR (Status)) {
+      //
+      // Configuration changed. Enable system reboot flag.
+      //
+      REDFISH_ENABLE_SYSTEM_REBOOT ();
     } else {
-      DEBUG ((DEBUG_ERROR, "%a, %a.%a %s array value has no change\n", __func__, Schema, Version, ConfigureLang));
+      DEBUG ((DEBUG_ERROR, "%a, apply %s array failed: %r\n", __func__, ConfigureLang, Status));
     }
+  } else {
+    DEBUG ((DEBUG_ERROR, "%a, %a.%a %s array value has no change\n", __func__, Schema, Version, ConfigureLang));
   }
 
   return Status;
@@ -964,63 +966,64 @@ ApplyFeatureSettingsBooleanArrayType (
   Status = RedfishPlatformConfigGetValue (Schema, Version, ConfigureLang, &RedfishValue);
   if (EFI_ERROR (Status)) {
     DEBUG ((DEBUG_ERROR, "%a, %a.%a %s failed: %r\n", __func__, Schema, Version, ConfigureLang, Status));
-  } else {
-    if (RedfishValue.Type != RedfishValueTypeBooleanArray) {
-      DEBUG ((DEBUG_ERROR, "%a, %a.%a %s value is not string array type\n", __func__, Schema, Version, ConfigureLang));
-      return EFI_DEVICE_ERROR;
-    }
+    return Status;
+  }
+
+  if (RedfishValue.Type != RedfishValueTypeBooleanArray) {
+    DEBUG ((DEBUG_ERROR, "%a, %a.%a %s value is not string array type\n", __func__, Schema, Version, ConfigureLang));
+    return EFI_DEVICE_ERROR;
+  }
 
+  //
+  // If there is no change in array, do nothing
+  //
+  if (!CompareRedfishBooleanArrayValues (ArrayHead, RedfishValue.Value.BooleanArray, RedfishValue.ArrayCount)) {
     //
-    // If there is no change in array, do nothing
+    // Apply settings from redfish
     //
-    if (!CompareRedfishBooleanArrayValues (ArrayHead, RedfishValue.Value.BooleanArray, RedfishValue.ArrayCount)) {
-      //
-      // Apply settings from redfish
-      //
-      DEBUG ((DEBUG_MANAGEABILITY, "%a, %a.%a apply %s for array\n", __func__, Schema, Version, ConfigureLang));
-      FreeArrayTypeRedfishValue (&RedfishValue);
+    DEBUG ((DEBUG_MANAGEABILITY, "%a, %a.%a apply %s for array\n", __func__, Schema, Version, ConfigureLang));
+    FreeArrayTypeRedfishValue (&RedfishValue);
 
-      //
-      // Convert array from RedfishCS_int64_Array to EDKII_REDFISH_VALUE
-      //
-      RedfishValue.ArrayCount = 0;
-      Buffer                  = ArrayHead;
-      while (Buffer != NULL) {
-        RedfishValue.ArrayCount += 1;
-        Buffer                   = Buffer->Next;
-      }
+    //
+    // Convert array from RedfishCS_int64_Array to EDKII_REDFISH_VALUE
+    //
+    RedfishValue.ArrayCount = 0;
+    Buffer                  = ArrayHead;
+    while (Buffer != NULL) {
+      RedfishValue.ArrayCount += 1;
+      Buffer                   = Buffer->Next;
+    }
 
-      //
-      // Allocate pool for new values
-      //
-      RedfishValue.Value.BooleanArray = AllocatePool (RedfishValue.ArrayCount * sizeof (BOOLEAN));
-      if (RedfishValue.Value.BooleanArray == NULL) {
-        ASSERT (FALSE);
-        return EFI_OUT_OF_RESOURCES;
-      }
+    //
+    // Allocate pool for new values
+    //
+    RedfishValue.Value.BooleanArray = AllocatePool (RedfishValue.ArrayCount * sizeof (BOOLEAN));
+    if (RedfishValue.Value.BooleanArray == NULL) {
+      ASSERT (FALSE);
+      return EFI_OUT_OF_RESOURCES;
+    }
 
-      Buffer = ArrayHead;
-      Index  = 0;
-      while (Buffer != NULL) {
-        RedfishValue.Value.BooleanArray[Index] = (BOOLEAN)*Buffer->ArrayValue;
-        Buffer                                 = Buffer->Next;
-        Index++;
-      }
+    Buffer = ArrayHead;
+    Index  = 0;
+    while (Buffer != NULL) {
+      RedfishValue.Value.BooleanArray[Index] = (BOOLEAN)*Buffer->ArrayValue;
+      Buffer                                 = Buffer->Next;
+      Index++;
+    }
 
-      ASSERT (Index <= RedfishValue.ArrayCount);
+    ASSERT (Index <= RedfishValue.ArrayCount);
 
-      Status = RedfishPlatformConfigSetValue (Schema, Version, ConfigureLang, RedfishValue);
-      if (!EFI_ERROR (Status)) {
-        //
-        // Configuration changed. Enable system reboot flag.
-        //
-        REDFISH_ENABLE_SYSTEM_REBOOT ();
-      } else {
-        DEBUG ((DEBUG_ERROR, "%a, apply %s array failed: %r\n", __func__, ConfigureLang, Status));
-      }
+    Status = RedfishPlatformConfigSetValue (Schema, Version, ConfigureLang, RedfishValue);
+    if (!EFI_ERROR (Status)) {
+      //
+      // Configuration changed. Enable system reboot flag.
+      //
+      REDFISH_ENABLE_SYSTEM_REBOOT ();
     } else {
-      DEBUG ((DEBUG_ERROR, "%a, %a.%a %s array value has no change\n", __func__, Schema, Version, ConfigureLang));
+      DEBUG ((DEBUG_ERROR, "%a, apply %s array failed: %r\n", __func__, ConfigureLang, Status));
     }
+  } else {
+    DEBUG ((DEBUG_ERROR, "%a, %a.%a %s array value has no change\n", __func__, Schema, Version, ConfigureLang));
   }
 
   return Status;
-- 
2.32.0 (Apple Git-132)



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#110150): https://edk2.groups.io/g/devel/message/110150
Mute This Topic: https://groups.io/mt/102211774/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list