X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fchronovu-la%2Fapi.c;h=14f1066eaa8809a565f2744d7aa9780bcf31d88a;hb=16aca7661b7ab34a399c323bb9214721e2b1be0c;hp=3dc0598ec30aba688b00c712012dff6c3cb31029;hpb=0af636bed97c174bea46e61e961eaa1b0b162e0f;p=libsigrok.git diff --git a/src/hardware/chronovu-la/api.c b/src/hardware/chronovu-la/api.c index 3dc0598e..14f1066e 100644 --- a/src/hardware/chronovu-la/api.c +++ b/src/hardware/chronovu-la/api.c @@ -80,14 +80,13 @@ static int add_device(int idx, int model, GSList **devices) struct sr_dev_inst *sdi; struct drv_context *drvc; struct dev_context *devc; - struct sr_channel *ch; ret = SR_OK; drvc = di->priv; /* Allocate memory for our private device context. */ - devc = g_try_malloc(sizeof(struct dev_context)); + devc = g_malloc0(sizeof(struct dev_context)); /* Set some sane defaults. */ devc->prof = &cv_profiles[model]; @@ -120,21 +119,16 @@ static int add_device(int idx, int model, GSList **devices) devc->cur_samplerate = devc->prof->max_samplerate; /* Register the device with libsigrok. */ - sdi = sr_dev_inst_new(); + sdi = g_malloc0(sizeof(struct sr_dev_inst)); sdi->status = SR_ST_INITIALIZING; sdi->vendor = g_strdup("ChronoVu"); sdi->model = g_strdup(devc->prof->modelname); sdi->driver = di; sdi->priv = devc; - for (i = 0; i < devc->prof->num_channels; i++) { - if (!(ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE, - cv_channel_names[i]))) { - ret = SR_ERR; - goto err_free_dev_inst; - } - sdi->channels = g_slist_append(sdi->channels, ch); - } + for (i = 0; i < devc->prof->num_channels; i++) + sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE, + cv_channel_names[i]); *devices = g_slist_append(*devices, sdi); drvc->instances = g_slist_append(drvc->instances, sdi); @@ -142,9 +136,6 @@ static int add_device(int idx, int model, GSList **devices) if (ret == SR_OK) return SR_OK; -err_free_dev_inst: - sr_dev_inst_free(sdi); - g_free(devc->final_buf); err_free_devc: g_free(devc);