ret = FALSE;
devopts = g_variant_get_fixed_array(gvar, &num_opts, sizeof(int32_t));
for (i = 0; i < num_opts; i++) {
- if (devopts[i] == key) {
+ if ((devopts[i] & SR_CONF_MASK) == key) {
ret = TRUE;
break;
}
* @retval struct sr_dev_inst *. Dynamically allocated, free using
* sr_dev_inst_free().
*/
-SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int index, int status,
+SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int status,
const char *vendor, const char *model, const char *version)
{
struct sr_dev_inst *sdi;
}
sdi->driver = NULL;
- sdi->index = index;
sdi->status = status;
sdi->inst_type = -1;
sdi->vendor = vendor ? g_strdup(vendor) : NULL;
sdi->model = model ? g_strdup(model) : NULL;
sdi->version = version ? g_strdup(version) : NULL;
+ sdi->serial_num = NULL;
+ sdi->connection_id = NULL;
sdi->channels = NULL;
sdi->channel_groups = NULL;
sdi->session = NULL;
for (l = sdi->channels; l; l = l->next) {
ch = l->data;
g_free(ch->name);
+ g_free(ch->priv);
g_free(ch);
}
g_slist_free(sdi->channels);
g_free(sdi->vendor);
g_free(sdi->model);
g_free(sdi->version);
+ g_free(sdi->serial_num);
+ g_free(sdi->connection_id);
g_free(sdi);
}