From: Bert Vermeulen Date: Tue, 16 Apr 2013 22:49:18 +0000 (+0200) Subject: hantek-dso: Use std_dev_clear() X-Git-Tag: dsupstream~118 X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=commitdiff_plain;h=949b3dc0916eed68ba6f3878300feb61ad858014 hantek-dso: Use std_dev_clear() --- diff --git a/hardware/hantek-dso/api.c b/hardware/hantek-dso/api.c index 05e95c60..6583e0ff 100644 --- a/hardware/hantek-dso/api.c +++ b/hardware/hantek-dso/api.c @@ -230,38 +230,19 @@ static int configure_probes(const struct sr_dev_inst *sdi) return SR_OK; } -/* Properly close and free all devices. */ -static int clear_instances(void) +static void clear_dev_context(void *priv) { - struct sr_dev_inst *sdi; - struct drv_context *drvc; struct dev_context *devc; - GSList *l; - - drvc = di->priv; - for (l = drvc->instances; l; l = l->next) { - if (!(sdi = l->data)) { - /* Log error, but continue cleaning up the rest. */ - sr_err("%s: sdi was NULL, continuing", __func__); - continue; - } - if (!(devc = sdi->priv)) { - /* Log error, but continue cleaning up the rest. */ - sr_err("%s: sdi->priv was NULL, continuing", __func__); - continue; - } - dso_close(sdi); - sr_usb_dev_inst_free(sdi->conn); - g_free(devc->triggersource); - g_slist_free(devc->enabled_probes); - sr_dev_inst_free(sdi); - } + devc = priv; + g_free(devc->triggersource); + g_slist_free(devc->enabled_probes); - g_slist_free(drvc->instances); - drvc->instances = NULL; +} - return SR_OK; +static int clear_instances(void) +{ + return std_dev_clear(di, clear_dev_context); } static int hw_init(struct sr_context *sr_ctx)