]> sigrok.org Git - libsigrok.git/blobdiff - std.c
NEWS: Add most important items since last release.
[libsigrok.git] / std.c
diff --git a/std.c b/std.c
index f3519a1df805ea86f0e96b9c3861f0931248ba3f..8add0d3dc622c2045cfa5c870efb4ab39183dde7 100644 (file)
--- a/std.c
+++ b/std.c
@@ -1,5 +1,5 @@
 /*
- * This file is part of the sigrok project.
+ * This file is part of the libsigrok project.
  *
  * Copyright (C) 2013 Uwe Hermann <uwe@hermann-uwe.de>
  *
@@ -47,12 +47,13 @@ SR_PRIV int std_hw_init(struct sr_context *sr_ctx, struct sr_dev_driver *di,
                return SR_ERR_ARG;
        }
 
-       if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
+       if (!(drvc = g_try_malloc(sizeof(struct drv_context)))) {
                sr_err("%sDriver context malloc failed.", prefix);
                return SR_ERR_MALLOC;
        }
 
        drvc->sr_ctx = sr_ctx;
+       drvc->instances = NULL;
        di->priv = drvc;
 
        return SR_OK;
@@ -174,7 +175,8 @@ SR_PRIV int std_hw_dev_acquisition_stop_serial(struct sr_dev_inst *sdi,
  *
  * @return SR_OK on success.
  */
-SR_PRIV int std_dev_clear(const struct sr_dev_driver *driver)
+SR_PRIV int std_dev_clear(const struct sr_dev_driver *driver,
+               std_dev_clear_t clear_private)
 {
        struct sr_dev_inst *sdi;
        struct drv_context *drvc;
@@ -203,6 +205,8 @@ SR_PRIV int std_dev_clear(const struct sr_dev_driver *driver)
                        else if (sdi->inst_type == SR_INST_SERIAL)
                                sr_serial_dev_inst_free(sdi->conn);
                }
+               if (clear_private)
+                       clear_private(sdi->priv);
                sdi = l->data;
                sr_dev_inst_free(sdi);
        }