And proper memory cleanup of cached devices
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>
Thu, 6 Nov 2003 10:21:14 +0000 (10:21 +0000)
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>
Thu, 6 Nov 2003 10:21:14 +0000 (10:21 +0000)
Original commit message from CVS:
And proper memory cleanup of cached devices

sys/oss/gstosselement.c

index b921119..6d1e151 100644 (file)
@@ -128,6 +128,8 @@ gst_osselement_base_init (GstOssElementClass *klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
+  klass->device_combinations = NULL;
+
   gst_element_class_set_details (element_class, &gst_osselement_details);
 }
 
@@ -212,7 +214,17 @@ gst_osselement_class_probe_devices (GstOssElementClass *klass,
     GstOssDeviceCombination devices[16];
     gint n;
 
-    klass->device_combinations = NULL;
+    while (klass->device_combinations) {
+      GList *item = klass->device_combinations;
+      GstOssDeviceCombination *combi = item->data;
+
+      klass->device_combinations =
+       g_list_remove (klass->device_combinations, item);
+
+      g_free (combi->dsp);
+      g_free (combi->mixer);
+      g_free (combi);
+    }
 
     /* probe for all /dev entries */
     memset (devices, 0, sizeof (devices));