commit - 05b36ee22c78d4ce6e03b06920bf428c44a97eda
commit + 2ae45b1c436f5e25cf4aad9f95f7640eb4affcac
blob - 42429877be1598461e50f1d6738cbfa3944c519c
blob + 7cbbe889753607cde67e5baef9e8732ecfe034c5
--- siomixer.c
+++ siomixer.c
struct info *nextent(struct info *, int);
void ondesc(void *, struct sioctl_desc *, int);
void onctl(void *, unsigned, unsigned);
+static void _info_free(struct info *);
+static void
+_info_free(struct info *i)
+{
+ if (i == NULL)
+ return;
+ if (i->widget)
+ audiowidget_free(i->widget);
+ if (i->timeout)
+ g_source_remove(i->timeout);
+ free(i);
+}
+
/*
* compare two sioctl_desc structures, used to sort infolist
*/
for (pi = &s.infolist; (i = *pi) != NULL; pi = &i->next) {
if (d->addr == i->desc.addr) {
*pi = i->next;
- if (i->widget) {
- audiowidget_free(i->widget);
- }
- free(i);
+ _info_free(i);
break;
}
}