GSList *usb_devices, *devices, *l;
struct drv_context *drvc;
struct sr_dev_inst *sdi;
- struct sr_channel *ch;
struct dev_context *devc;
struct sr_usb_dev_inst *usb;
struct device_info dev_info;
continue;
}
- if (!(devc = g_try_malloc(sizeof(struct dev_context)))) {
- sr_err("Device instance malloc failed.");
- sr_usb_dev_inst_free(usb);
- continue;
- }
+ devc = g_malloc0(sizeof(struct dev_context));
if (!(devc->xfer_in = libusb_alloc_transfer(0))) {
sr_err("Transfer malloc failed.");
sdi->inst_type = SR_INST_USB;
sdi->conn = usb;
- for (i = 0; channel_names[i]; i++) {
- ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE,
- channel_names[i]);
- sdi->channels = g_slist_append(sdi->channels, ch);
- devc->channels[i] = ch;
- }
+ for (i = 0; channel_names[i]; i++)
+ devc->channels[i] = sr_channel_new(sdi, i, SR_CHANNEL_LOGIC,
+ TRUE, channel_names[i]);
devc->state = STATE_IDLE;
devc->next_state = STATE_IDLE;