]> sigrok.org Git - libsigrok.git/blobdiff - src/output/output.c
output: Fix options enumeration. Again.
[libsigrok.git] / src / output / output.c
index 787d75c749b4c69f5bd35f4f2b658929bf003cab..a2d7c5107ef5352f349cccd34c351c1c98717549 100644 (file)
@@ -170,9 +170,9 @@ SR_API const struct sr_option **sr_output_options_get(const struct sr_output_mod
 
        mod_opts = o->options();
 
-       for (size = 1; mod_opts[size].id; size++)
+       for (size = 0; mod_opts[size].id; size++)
                ;
-       opts = g_malloc(size * sizeof(struct sr_option *));
+       opts = g_malloc((size + 1) * sizeof(struct sr_option *));
 
        for (i = 0; i < size; i++)
                opts[i] = &mod_opts[i];
@@ -274,7 +274,6 @@ SR_API const struct sr_output *sr_output_new(const struct sr_output_module *o,
        }
 
        if (op->module->init && op->module->init(op, new_opts) != SR_OK) {
-               g_hash_table_destroy(new_opts);
                g_free(op);
                op = NULL;
        }