GESTimeline: Remove all tracks/layers when being disposed
authorEdward Hervey <edward.hervey@collabora.co.uk>
Wed, 9 Jun 2010 11:52:35 +0000 (13:52 +0200)
committerEdward Hervey <edward.hervey@collabora.co.uk>
Wed, 9 Jun 2010 11:52:35 +0000 (13:52 +0200)
ges/ges-timeline.c

index 589a62ee48879696f68084e595544703f629e615..43dd47e2399f804506107ed7152689875794ec3f 100644 (file)
@@ -103,6 +103,17 @@ ges_timeline_dispose (GObject * object)
     g_object_unref (timeline->discoverer);
     timeline->discoverer = NULL;
   }
+
+  while (timeline->tracks) {
+    TrackPrivate *priv = (TrackPrivate *) timeline->tracks->data;
+    ges_timeline_remove_track (timeline, priv->track);
+  }
+
+  while (timeline->layers) {
+    GESTimelineLayer *layer = (GESTimelineLayer *) timeline->layers->data;
+    ges_timeline_remove_layer (timeline, layer);
+  }
+
   G_OBJECT_CLASS (ges_timeline_parent_class)->dispose (object);
 }