Re: [PATCH] libxl: Use g_autofree for char* where easily possible

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2/16/21 6:40 PM, Jim Fehlig wrote:
All of these strings are allocated once, freed once, and are never
returned out of the function where they are declared.

Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx>
---
  src/libxl/libxl_capabilities.c |  3 +--
  src/libxl/libxl_domain.c       | 17 +++++------------
  src/libxl/libxl_driver.c       | 32 +++++++++++---------------------
  src/libxl/libxl_logger.c       | 21 ++++++---------------
  src/libxl/libxl_migration.c    | 15 +++++----------
  src/libxl/xen_common.c         | 17 ++++++-----------
  src/libxl/xen_xl.c             |  6 ++----
  7 files changed, 36 insertions(+), 75 deletions(-)

[snip]

@@ -135,7 +133,7 @@ libxlLoggerNew(const char *logDir, virLogPriority minLevel)
  {
      xentoollog_logger_libvirt logger;
      libxlLoggerPtr logger_out = NULL;
-    char *path = NULL;
+    g_autofree char *path = NULL;
switch (minLevel) {
      case VIR_LOG_DEBUG:
@@ -164,7 +162,6 @@ libxlLoggerNew(const char *logDir, virLogPriority minLevel)
      logger_out = XTL_NEW_LOGGER(libvirt, logger);
cleanup:
-    VIR_FREE(path);
      return logger_out;
error:

With nothing more to cleanup, this function could be reduced a bit more. I've squashed the following into my local branch

diff --git a/src/libxl/libxl_logger.c b/src/libxl/libxl_logger.c
index 39e59d9231..1da3357c6d 100644
--- a/src/libxl/libxl_logger.c
+++ b/src/libxl/libxl_logger.c
@@ -132,7 +132,6 @@ libxlLoggerPtr
 libxlLoggerNew(const char *logDir, virLogPriority minLevel)
 {
     xentoollog_logger_libvirt logger;
-    libxlLoggerPtr logger_out = NULL;
     g_autofree char *path = NULL;

     switch (minLevel) {
@@ -156,17 +155,12 @@ libxlLoggerNew(const char *logDir, virLogPriority minLevel)

     path = g_strdup_printf("%s/libxl-driver.log", logDir);

-    if ((logger.defaultLogFile = fopen(path, "a")) == NULL)
-        goto error;
+    if ((logger.defaultLogFile = fopen(path, "a")) == NULL) {
+        virHashFree(logger.files);
+        return NULL;
+    }

-    logger_out = XTL_NEW_LOGGER(libvirt, logger);
-
- cleanup:
-    return logger_out;
-
- error:
-    virHashFree(logger.files);
-    goto cleanup;
+    return XTL_NEW_LOGGER(libvirt, logger);
 }

 void




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux