]> sigrok.org Git - sigrok-cli.git/blobdiff - sigrok-cli.c
Drop unneeded comments.
[sigrok-cli.git] / sigrok-cli.c
index d1544ac5867960f98bc2ccc791dad243918fed7b..4af47d2da2a3fe0470fee124af052e62fbcff140 100644 (file)
@@ -821,7 +821,6 @@ static int register_pds(struct sr_dev *dev, const char *pdstring)
        int ret;
        char **pdtokens, **pdtok, *pd_name;
 
-       /* Avoid compiler warnings. */
        (void)dev;
 
        ret = 0;
@@ -1458,7 +1457,6 @@ static void run_session(void)
 static void logger(const gchar *log_domain, GLogLevelFlags log_level,
                   const gchar *message, gpointer cb_data)
 {
-       /* Avoid compiler warnings. */
        (void)log_domain;
        (void)cb_data;
 
@@ -1475,8 +1473,10 @@ static void logger(const gchar *log_domain, GLogLevelFlags log_level,
 
 int main(int argc, char **argv)
 {
+       int ret = 1;
        GOptionContext *context;
        GError *error;
+       struct sr_context *sr_ctx = NULL;
 
        g_log_set_default_handler(logger, NULL);
 
@@ -1486,36 +1486,36 @@ int main(int argc, char **argv)
 
        if (!g_option_context_parse(context, &argc, &argv, &error)) {
                g_critical("%s", error->message);
-               return 1;
+               goto done;
        }
 
        /* Set the loglevel (amount of messages to output) for libsigrok. */
        if (sr_log_loglevel_set(opt_loglevel) != SR_OK)
-               return 1;
+               goto done;
 
        /* Set the loglevel (amount of messages to output) for libsigrokdecode. */
        if (srd_log_loglevel_set(opt_loglevel) != SRD_OK)
-               return 1;
+               goto done;
 
-       if (sr_init() != SR_OK)
-               return 1;
+       if (sr_init(&sr_ctx) != SR_OK)
+               goto done;
 
        if (opt_pds) {
                if (srd_init(NULL) != SRD_OK)
-                       return 1;
+                       goto done;
                if (register_pds(NULL, opt_pds) != 0)
-                       return 1;
+                       goto done;
                if (srd_pd_output_callback_add(SRD_OUTPUT_ANN,
                                show_pd_annotations, NULL) != SRD_OK)
-                       return 1;
+                       goto done;
                if (setup_pd_stack() != 0)
-                       return 1;
+                       goto done;
                if (setup_pd_annotations() != 0)
-                       return 1;
+                       goto done;
        }
 
        if (setup_output_format() != 0)
-               return 1;
+               goto done;
 
        if (opt_version)
                show_version();
@@ -1535,8 +1535,13 @@ int main(int argc, char **argv)
        if (opt_pds)
                srd_exit();
 
+       ret = 0;
+
+done:
+       if (sr_ctx)
+               sr_exit(sr_ctx);
+
        g_option_context_free(context);
-       sr_exit();
 
-       return 0;
+       return ret;
 }