From: Edward Hervey Date: Fri, 12 Mar 2010 17:42:28 +0000 (+0100) Subject: GESTimeline: Properly iterate TrackObject lists when removing them X-Git-Tag: 1.19.3~493^2~3083 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dafe3d2bb4c142dd75b6d4186f07b964dd44615e;p=platform%2Fupstream%2Fgstreamer.git GESTimeline: Properly iterate TrackObject lists when removing them --- diff --git a/ges/ges-timeline.c b/ges/ges-timeline.c index 631580c739..f2990063a5 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,