]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
analyze: use static destructors
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 20 Nov 2018 06:13:16 +0000 (15:13 +0900)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 20 Nov 2018 15:48:21 +0000 (16:48 +0100)
src/analyze/analyze.c

index f82c5023d52e4f1d3cff7f851e0a60713a8a1568..959c078c5c05a89a27dae48d1ee40de6bcfefc1f 100644 (file)
@@ -26,6 +26,7 @@
 #include "hashmap.h"
 #include "locale-util.h"
 #include "log.h"
+#include "main-func.h"
 #include "pager.h"
 #include "parse-util.h"
 #include "path-util.h"
@@ -75,6 +76,9 @@ static bool arg_man = true;
 static bool arg_generators = false;
 static const char *arg_root = NULL;
 
+STATIC_DESTRUCTOR_REGISTER(arg_dot_from_patterns, strv_freep);
+STATIC_DESTRUCTOR_REGISTER(arg_dot_to_patterns, strv_freep);
+
 struct boot_times {
         usec_t firmware_time;
         usec_t loader_time;
@@ -1989,7 +1993,7 @@ static int parse_argv(int argc, char *argv[]) {
         return 1; /* work to do */
 }
 
-int main(int argc, char *argv[]) {
+static int run(int argc, char *argv[]) {
 
         static const Verb verbs[] = {
                 { "help",              VERB_ANY, VERB_ANY, 0,            help                   },
@@ -2026,15 +2030,9 @@ int main(int argc, char *argv[]) {
 
         r = parse_argv(argc, argv);
         if (r <= 0)
-                goto finish;
-
-        r = dispatch_verb(argc, argv, verbs, NULL);
-
-finish:
-        pager_close();
-
-        strv_free(arg_dot_from_patterns);
-        strv_free(arg_dot_to_patterns);
+                return r;
 
-        return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+        return dispatch_verb(argc, argv, verbs, NULL);
 }
+
+DEFINE_MAIN_FUNCTION(run);