sr_session_dev_remove_all(session);
g_slist_free_full(session->owned_devs, (GDestroyNotify)sr_dev_inst_free);
sr_session_dev_remove_all(session);
g_slist_free_full(session->owned_devs, (GDestroyNotify)sr_dev_inst_free);
sr_err("Failed to start acquisition of device in "
"running session (%s)", sr_strerror(ret));
return ret;
sr_err("Failed to start acquisition of device in "
"running session (%s)", sr_strerror(ret));
return ret;
- sdi = l->data;
- ret = sdi->driver->dev_acquisition_start(sdi, sdi);
+ if (!(sdi = l->data)) {
+ sr_err("Device sdi was NULL, can't start session.");
+ ret = SR_ERR;
+ break;
+ }
+ ret = sdi->driver->dev_acquisition_start(sdi);
if (ret != SR_OK) {
sr_err("Could not start %s device %s acquisition.",
sdi->driver->name, sdi->connection_id);
if (ret != SR_OK) {
sr_err("Could not start %s device %s acquisition.",
sdi->driver->name, sdi->connection_id);
for (node = session->devs; node; node = node->next) {
sdi = node->data;
if (sdi->driver && sdi->driver->dev_acquisition_stop)
for (node = session->devs; node; node = node->next) {
sdi = node->data;
if (sdi->driver && sdi->driver->dev_acquisition_stop)
logic_copy->length = logic->length;
logic_copy->unitsize = logic->unitsize;
memcpy(logic_copy->data, logic->data, logic->length * logic->unitsize);
logic_copy->length = logic->length;
logic_copy->unitsize = logic->unitsize;
memcpy(logic_copy->data, logic->data, logic->length * logic->unitsize);
analog_old_copy->channels = g_slist_copy(analog_old->channels);
analog_old_copy->num_samples = analog_old->num_samples;
analog_old_copy->mq = analog_old->mq;
analog_old_copy->channels = g_slist_copy(analog_old->channels);
analog_old_copy->num_samples = analog_old->num_samples;
analog_old_copy->mq = analog_old->mq;
analog_copy->data = g_malloc(
analog->encoding->unitsize * analog->num_samples);
memcpy(analog_copy->data, analog->data,
analog_copy->data = g_malloc(
analog->encoding->unitsize * analog->num_samples);
memcpy(analog_copy->data, analog->data,