sr_strerror(ret));
return ret;
}
- if ((ret = sdi->driver->dev_acquisition_start(sdi,
- sdi)) != SR_OK) {
+ if ((ret = sdi->driver->dev_acquisition_start(sdi)) != SR_OK) {
sr_err("Failed to start acquisition of device in "
"running session (%s)", sr_strerror(ret));
return ret;
/* Have all devices start acquisition. */
for (l = session->devs; l; l = l->next) {
- 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);
for (l = session->devs; l != lend; l = l->next) {
sdi = l->data;
if (sdi->driver->dev_acquisition_stop)
- sdi->driver->dev_acquisition_stop(sdi, sdi);
+ sdi->driver->dev_acquisition_stop(sdi);
}
/* TODO: Handle delayed stops. Need to iterate the event
* sources... */
for (node = session->devs; node; node = node->next) {
sdi = node->data;
if (sdi->driver && sdi->driver->dev_acquisition_stop)
- sdi->driver->dev_acquisition_stop(sdi, sdi);
+ sdi->driver->dev_acquisition_stop(sdi);
}
return G_SOURCE_REMOVE;