hello world
when using the (default) output module "analog"
sigrok-cli crashes with
g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed
and i need "stty echo" to restore my terminal, cos clear_anykey() is not called
i call sigrok-cli like
sigrok-cli --continuous --driver hantek-dso --output-format analog
--output-file out.analog
this happens cos analog.c / cleanup() does a double free in
```
g_variant_unref(options[0].def);
g_slist_free_full(options[0].values, (GDestroyNotify)g_variant_unref);
```
maybe the analog module should not be started twice?
see: libsigrok-cli / session.c / datafeed_in()
```
static const struct sr_output *o = NULL;
static const struct sr_output *oa = NULL;
// ...
if (!(o = setup_output_format(sdi, &outfile)))
g_critical("Failed to initialize output module.");
/* Set up backup analog output module. */
if (outfile)
oa = sr_output_new(sr_output_find("analog"), NULL,
sdi, NULL);
```
to avoid the double free, i added
```
if (options[0].def != NULL) {
g_variant_unref(options[0].def);
options[0].def = NULL;
}
if (options[0].values != NULL) {
g_slist_free_full(options[0].values, (GDestroyNotify)g_variant_unref);
options[0].values = NULL;
}
```
maybe there is a more "glib way", but this works for me
_______________________________________________
sigrok-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sigrok-devel