X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Frigol-ds%2Fapi.c;h=221b1234ac6177c30bccfc92b56cba6c00f60ca8;hb=8bf18daabbf3cb0fec6c178b4bc7f6283a314e45;hp=9fb2f4066fd148698b60f6fb091d178feb8760b3;hpb=093e1cba6b7bf14cfb77fa36f59b0c16e6fca7cc;p=libsigrok.git diff --git a/src/hardware/rigol-ds/api.c b/src/hardware/rigol-ds/api.c index 9fb2f406..221b1234 100644 --- a/src/hardware/rigol-ds/api.c +++ b/src/hardware/rigol-ds/api.c @@ -288,12 +288,11 @@ static void clear_helper(void *priv) g_free(devc->trigger_source); g_free(devc->trigger_slope); g_free(devc->analog_groups); - g_free(devc); } static int dev_clear(const struct sr_dev_driver *di) { - return std_dev_clear(di, clear_helper); + return std_dev_clear_with_callback(di, clear_helper); } static struct sr_dev_inst *probe_device(struct sr_scpi_dev_inst *scpi) @@ -445,8 +444,6 @@ static int dev_open(struct sr_dev_inst *sdi) return SR_ERR; } - sdi->status = SR_ST_ACTIVE; - return SR_OK; } @@ -458,16 +455,13 @@ static int dev_close(struct sr_dev_inst *sdi) scpi = sdi->conn; devc = sdi->priv; + if (!scpi) + return SR_ERR_BUG; + if (devc->model->series->protocol == PROTOCOL_V2) rigol_ds_config_set(sdi, ":KEY:LOCK DISABLE"); - if (scpi) { - if (sr_scpi_close(scpi) < 0) - return SR_ERR; - sdi->status = SR_ST_INACTIVE; - } - - return SR_OK; + return sr_scpi_close(scpi); } static int analog_frame_size(const struct sr_dev_inst *sdi)