sr: don't free driver-specific per-device struct in drivers
sr_dev_inst_free() takes care of that.
This commit is contained in:
parent
da1466d677
commit
341ce41545
|
@ -159,7 +159,6 @@ static int hw_cleanup(void)
|
||||||
return SR_ERR_BUG;
|
return SR_ERR_BUG;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free(sdi->priv);
|
|
||||||
sr_dev_inst_free(sdi);
|
sr_dev_inst_free(sdi);
|
||||||
|
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
|
|
|
@ -735,7 +735,6 @@ static int hw_cleanup(void)
|
||||||
ret = SR_ERR_BUG;
|
ret = SR_ERR_BUG;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
g_free(sdi->priv);
|
|
||||||
sr_dev_inst_free(sdi);
|
sr_dev_inst_free(sdi);
|
||||||
}
|
}
|
||||||
g_slist_free(device_instances);
|
g_slist_free(device_instances);
|
||||||
|
|
|
@ -695,17 +695,6 @@ static int hw_cleanup(void)
|
||||||
ret = SR_ERR_BUG;
|
ret = SR_ERR_BUG;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
/*
|
|
||||||
* Fixes a segfault as it's free()d elsewhere already.
|
|
||||||
* TODO: Document who is supposed to free this, and when.
|
|
||||||
*/
|
|
||||||
if (sdi->priv != NULL)
|
|
||||||
g_free(sdi->priv);
|
|
||||||
else
|
|
||||||
sr_err("la8: %s: sdi->priv was NULL, nothing "
|
|
||||||
"to do", __func__);
|
|
||||||
#endif
|
|
||||||
sr_dev_inst_free(sdi); /* Returns void. */
|
sr_dev_inst_free(sdi); /* Returns void. */
|
||||||
}
|
}
|
||||||
g_slist_free(device_instances); /* Returns void. */
|
g_slist_free(device_instances); /* Returns void. */
|
||||||
|
|
|
@ -522,8 +522,9 @@ static int hw_cleanup(void)
|
||||||
{
|
{
|
||||||
GSList *l;
|
GSList *l;
|
||||||
struct sr_device_instance *sdi;
|
struct sr_device_instance *sdi;
|
||||||
int ret = SR_OK;
|
int ret;
|
||||||
|
|
||||||
|
ret = SR_OK;
|
||||||
/* Properly close all devices. */
|
/* Properly close all devices. */
|
||||||
for (l = device_instances; l; l = l->next) {
|
for (l = device_instances; l; l = l->next) {
|
||||||
if (!(sdi = l->data)) {
|
if (!(sdi = l->data)) {
|
||||||
|
@ -534,14 +535,12 @@ static int hw_cleanup(void)
|
||||||
}
|
}
|
||||||
if (sdi->serial->fd != -1)
|
if (sdi->serial->fd != -1)
|
||||||
serial_close(sdi->serial->fd);
|
serial_close(sdi->serial->fd);
|
||||||
g_free(sdi->priv);
|
|
||||||
sdi->priv = NULL;
|
|
||||||
sr_dev_inst_free(sdi);
|
sr_dev_inst_free(sdi);
|
||||||
}
|
}
|
||||||
g_slist_free(device_instances);
|
g_slist_free(device_instances);
|
||||||
device_instances = NULL;
|
device_instances = NULL;
|
||||||
|
|
||||||
return SR_OK;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hw_opendev(int device_index)
|
static int hw_opendev(int device_index)
|
||||||
|
|
|
@ -488,16 +488,15 @@ static int hw_closedev(int device_index)
|
||||||
static int hw_cleanup(void)
|
static int hw_cleanup(void)
|
||||||
{
|
{
|
||||||
GSList *l;
|
GSList *l;
|
||||||
|
struct sr_device_instance *sdi;
|
||||||
|
|
||||||
/* TODO: Error handling. */
|
for (l = device_instances; l; l = l->next) {
|
||||||
|
sdi = l->data;
|
||||||
/* Properly close all devices... */
|
/* Properly close all devices... */
|
||||||
for (l = device_instances; l; l = l->next)
|
close_device(sdi);
|
||||||
close_device((struct sr_device_instance *)l->data);
|
/* ...and free all their memory. */
|
||||||
|
sr_dev_inst_free(sdi);
|
||||||
/* ...and free all their memory. */
|
}
|
||||||
for (l = device_instances; l; l = l->next)
|
|
||||||
g_free(l->data);
|
|
||||||
g_slist_free(device_instances);
|
g_slist_free(device_instances);
|
||||||
device_instances = NULL;
|
device_instances = NULL;
|
||||||
|
|
||||||
|
|
|
@ -162,11 +162,8 @@ static int hw_cleanup(void)
|
||||||
{
|
{
|
||||||
GSList *l;
|
GSList *l;
|
||||||
|
|
||||||
/* TODO: Error handling. */
|
|
||||||
|
|
||||||
for (l = device_instances; l; l = l->next)
|
for (l = device_instances; l; l = l->next)
|
||||||
sr_dev_inst_free(l->data);
|
sr_dev_inst_free(l->data);
|
||||||
|
|
||||||
g_slist_free(device_instances);
|
g_slist_free(device_instances);
|
||||||
device_instances = NULL;
|
device_instances = NULL;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue