From dafe3d2bb4c142dd75b6d4186f07b964dd44615e Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Fri, 12 Mar 2010 18:42:28 +0100 Subject: [PATCH] GESTimeline: Properly iterate TrackObject lists when removing them --- ges/ges-timeline.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ges/ges-timeline.c b/ges/ges-timeline.c index 631580c..f299006 100644 --- a/ges/ges-timeline.c +++ b/ges/ges-timeline.c @@ -248,16 +248,18 @@ static void layer_object_removed_cb (GESTimelineLayer * layer, GESTimelineObject * object, GESTimeline * timeline) { - GList *tmp; + GList *tmp, *next; GST_DEBUG ("TimelineObject %p removed from layer %p", object, layer); /* Go over the object's track objects and figure out which one belongs to * the list of tracks we control */ - for (tmp = object->trackobjects; tmp; tmp = g_list_next (tmp)) { + for (tmp = object->trackobjects; tmp; tmp = next) { GESTrackObject *trobj = (GESTrackObject *) tmp->data; + next = g_list_next (tmp); + GST_DEBUG ("Trying to remove TrackObject %p", trobj); if (G_LIKELY (g_list_find_custom (timeline->tracks, (gconstpointer) trobj->track, -- 2.7.4