]> sigrok.org Git - libsigrok.git/blobdiff - src/output/output.c
input: Introduce new input module API.
[libsigrok.git] / src / output / output.c
index 787d75c749b4c69f5bd35f4f2b658929bf003cab..0029748bb7398510fc6abdc061ea37732ecf546c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the libsigrok project.
  *
- * Copyright (C) 2010-2012 Bert Vermeulen <bert@biot.com>
+ * Copyright (C) 2014 Bert Vermeulen <bert@biot.com>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -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;
        }