Zbigniew Jędrzejewski-Szmek 62fe94
From 59ccf93d97f0a37522e5f4fbf5cc0288dbedf495 Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 62fe94
From: Lennart Poettering <lennart@poettering.net>
Zbigniew Jędrzejewski-Szmek 62fe94
Date: Thu, 21 Aug 2014 19:08:30 +0200
Zbigniew Jędrzejewski-Szmek 62fe94
Subject: [PATCH] install: simplify usage of _cleanup_ macros
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
---
Zbigniew Jędrzejewski-Szmek 62fe94
 src/shared/install.c     | 27 +++++++++++++--------------
Zbigniew Jędrzejewski-Szmek 62fe94
 src/shared/path-lookup.h |  4 ++--
Zbigniew Jędrzejewski-Szmek 62fe94
 2 files changed, 15 insertions(+), 16 deletions(-)
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/shared/install.c b/src/shared/install.c
Zbigniew Jędrzejewski-Szmek 62fe94
index 03c7a9da2e..4b09a69456 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/shared/install.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/shared/install.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -45,8 +45,6 @@ typedef struct {
Zbigniew Jędrzejewski-Szmek 62fe94
         Hashmap *have_installed;
Zbigniew Jędrzejewski-Szmek 62fe94
 } InstallContext;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-#define _cleanup_install_context_done_ _cleanup_(install_context_done)
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
 static int in_search_path(const char *path, char **search) {
Zbigniew Jędrzejewski-Szmek 62fe94
         _cleanup_free_ char *parent = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
         int r;
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1161,7 +1159,7 @@ static int unit_file_can_install(
Zbigniew Jędrzejewski-Szmek 62fe94
                 const char *name,
Zbigniew Jędrzejewski-Szmek 62fe94
                 bool allow_symlink) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        _cleanup_install_context_done_ InstallContext c = {};
Zbigniew Jędrzejewski-Szmek 62fe94
+        _cleanup_(install_context_done) InstallContext c = {};
Zbigniew Jędrzejewski-Szmek 62fe94
         InstallInfo *i;
Zbigniew Jędrzejewski-Szmek 62fe94
         int r;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1498,7 +1496,7 @@ int unit_file_enable(
Zbigniew Jędrzejewski-Szmek 62fe94
                 unsigned *n_changes) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         _cleanup_lookup_paths_free_ LookupPaths paths = {};
Zbigniew Jędrzejewski-Szmek 62fe94
-        _cleanup_install_context_done_ InstallContext c = {};
Zbigniew Jędrzejewski-Szmek 62fe94
+        _cleanup_(install_context_done) InstallContext c = {};
Zbigniew Jędrzejewski-Szmek 62fe94
         char **i;
Zbigniew Jędrzejewski-Szmek 62fe94
         _cleanup_free_ char *config_path = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
         int r;
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1537,7 +1535,7 @@ int unit_file_disable(
Zbigniew Jędrzejewski-Szmek 62fe94
                 unsigned *n_changes) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         _cleanup_lookup_paths_free_ LookupPaths paths = {};
Zbigniew Jędrzejewski-Szmek 62fe94
-        _cleanup_install_context_done_ InstallContext c = {};
Zbigniew Jędrzejewski-Szmek 62fe94
+        _cleanup_(install_context_done) InstallContext c = {};
Zbigniew Jędrzejewski-Szmek 62fe94
         char **i;
Zbigniew Jędrzejewski-Szmek 62fe94
         _cleanup_free_ char *config_path = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
         _cleanup_set_free_free_ Set *remove_symlinks_to = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1597,7 +1595,7 @@ int unit_file_set_default(
Zbigniew Jędrzejewski-Szmek 62fe94
                 unsigned *n_changes) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         _cleanup_lookup_paths_free_ LookupPaths paths = {};
Zbigniew Jędrzejewski-Szmek 62fe94
-        _cleanup_install_context_done_ InstallContext c = {};
Zbigniew Jędrzejewski-Szmek 62fe94
+        _cleanup_(install_context_done) InstallContext c = {};
Zbigniew Jędrzejewski-Szmek 62fe94
         _cleanup_free_ char *config_path = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
         char *path;
Zbigniew Jędrzejewski-Szmek 62fe94
         int r;
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1859,7 +1857,7 @@ int unit_file_preset(
Zbigniew Jędrzejewski-Szmek 62fe94
                 UnitFileChange **changes,
Zbigniew Jędrzejewski-Szmek 62fe94
                 unsigned *n_changes) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        _cleanup_install_context_done_ InstallContext plus = {}, minus = {};
Zbigniew Jędrzejewski-Szmek 62fe94
+        _cleanup_(install_context_done) InstallContext plus = {}, minus = {};
Zbigniew Jędrzejewski-Szmek 62fe94
         _cleanup_lookup_paths_free_ LookupPaths paths = {};
Zbigniew Jędrzejewski-Szmek 62fe94
         _cleanup_free_ char *config_path = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
         char **i;
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1927,7 +1925,7 @@ int unit_file_preset_all(
Zbigniew Jędrzejewski-Szmek 62fe94
                 UnitFileChange **changes,
Zbigniew Jędrzejewski-Szmek 62fe94
                 unsigned *n_changes) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        _cleanup_install_context_done_ InstallContext plus = {}, minus = {};
Zbigniew Jędrzejewski-Szmek 62fe94
+        _cleanup_(install_context_done) InstallContext plus = {}, minus = {};
Zbigniew Jędrzejewski-Szmek 62fe94
         _cleanup_lookup_paths_free_ LookupPaths paths = {};
Zbigniew Jędrzejewski-Szmek 62fe94
         _cleanup_free_ char *config_path = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
         char **i;
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -2019,14 +2017,15 @@ int unit_file_preset_all(
Zbigniew Jędrzejewski-Szmek 62fe94
         return r;
Zbigniew Jędrzejewski-Szmek 62fe94
 }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-static void unitfilelist_free(UnitFileList **f) {
Zbigniew Jędrzejewski-Szmek 62fe94
-        if (!*f)
Zbigniew Jędrzejewski-Szmek 62fe94
+static void unit_file_list_free_one(UnitFileList *f) {
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (!f)
Zbigniew Jędrzejewski-Szmek 62fe94
                 return;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        free((*f)->path);
Zbigniew Jędrzejewski-Szmek 62fe94
-        free(*f);
Zbigniew Jędrzejewski-Szmek 62fe94
+        free(f->path);
Zbigniew Jędrzejewski-Szmek 62fe94
+        free(f);
Zbigniew Jędrzejewski-Szmek 62fe94
 }
Zbigniew Jędrzejewski-Szmek 62fe94
-#define _cleanup_unitfilelist_free_ _cleanup_(unitfilelist_free)
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+DEFINE_TRIVIAL_CLEANUP_FUNC(UnitFileList*, unit_file_list_free_one);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 int unit_file_get_list(
Zbigniew Jędrzejewski-Szmek 62fe94
                 UnitFileScope scope,
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -2071,7 +2070,7 @@ int unit_file_get_list(
Zbigniew Jędrzejewski-Szmek 62fe94
                 }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                 for (;;) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                        _cleanup_unitfilelist_free_ UnitFileList *f = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        _cleanup_(unit_file_list_free_onep) UnitFileList *f = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
                         struct dirent *de;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                         errno = 0;
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/shared/path-lookup.h b/src/shared/path-lookup.h
Zbigniew Jędrzejewski-Szmek 62fe94
index 2fe8173f44..4bbd47ec39 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/shared/path-lookup.h
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/shared/path-lookup.h
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -38,8 +38,6 @@ typedef enum SystemdRunningAs {
Zbigniew Jędrzejewski-Szmek 62fe94
         _SYSTEMD_RUNNING_AS_INVALID = -1
Zbigniew Jędrzejewski-Szmek 62fe94
 } SystemdRunningAs;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-#define _cleanup_lookup_paths_free_ _cleanup_(lookup_paths_free)
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
 int user_config_home(char **config_home);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 int lookup_paths_init(LookupPaths *p,
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -50,3 +48,5 @@ int lookup_paths_init(LookupPaths *p,
Zbigniew Jędrzejewski-Szmek 62fe94
                       const char *generator_early,
Zbigniew Jędrzejewski-Szmek 62fe94
                       const char *generator_late);
Zbigniew Jędrzejewski-Szmek 62fe94
 void lookup_paths_free(LookupPaths *p);
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+#define _cleanup_lookup_paths_free_ _cleanup_(lookup_paths_free)