X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=sigrok-cli.c;h=a626636dd137644f3b07ce5115ce074dcd5798ec;hb=5acb76821f33f03745e26c91fbb9cc7bcf34512a;hp=2f6c59d80b26bb1eb016ea05fd27426f70943320;hpb=198f4c6c8d8e572aed41dfc3f7d3fe413e421770;p=sigrok-cli.git diff --git a/sigrok-cli.c b/sigrok-cli.c index 2f6c59d..a626636 100644 --- a/sigrok-cli.c +++ b/sigrok-cli.c @@ -1478,6 +1478,7 @@ 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); @@ -1487,19 +1488,19 @@ int main(int argc, char **argv) if (!g_option_context_parse(context, &argc, &argv, &error)) { g_critical("%s", error->message); - goto done_noexit; + goto done; } /* Set the loglevel (amount of messages to output) for libsigrok. */ if (sr_log_loglevel_set(opt_loglevel) != SR_OK) - goto done_noexit; + goto done; /* Set the loglevel (amount of messages to output) for libsigrokdecode. */ if (srd_log_loglevel_set(opt_loglevel) != SRD_OK) - goto done_noexit; + goto done; - if (sr_init() != SR_OK) - goto done_noexit; + if (sr_init(&sr_ctx) != SR_OK) + goto done; if (opt_pds) { if (srd_init(NULL) != SRD_OK) @@ -1539,9 +1540,9 @@ int main(int argc, char **argv) ret = 0; done: - sr_exit(); + if (sr_ctx) + sr_exit(sr_ctx); -done_noexit: g_option_context_free(context); return ret;