From: Thibault Saunier Date: Wed, 23 Jan 2019 12:07:58 +0000 (-0300) Subject: Fix segfault when adding clips to group outside a timeline X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9748b963b602a8df07b30aef6e085098e4d3a806;p=platform%2Fupstream%2Fgst-editing-services.git Fix segfault when adding clips to group outside a timeline Making sure that objects are inside a timeline before adding/removing them from it Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/35 --- diff --git a/ges/ges-group.c b/ges/ges-group.c index a0fb24e..19fc304 100644 --- a/ges/ges-group.c +++ b/ges/ges-group.c @@ -455,7 +455,8 @@ _child_added (GESContainer * group, GESTimelineElement * child) GESGroupPrivate *priv = GES_GROUP (group)->priv; GstClockTime last_child_end = 0, first_child_start = G_MAXUINT64; - if (!GES_TIMELINE_ELEMENT_TIMELINE (group)) { + if (!GES_TIMELINE_ELEMENT_TIMELINE (group) + && GES_TIMELINE_ELEMENT_TIMELINE (child)) { timeline_add_group (GES_TIMELINE_ELEMENT_TIMELINE (child), GES_GROUP (group)); timeline_emit_group_added (GES_TIMELINE_ELEMENT_TIMELINE (child), @@ -554,8 +555,9 @@ _child_removed (GESContainer * group, GESTimelineElement * child) g_free (signals_ids_key); if (children == NULL) { GST_FIXME_OBJECT (group, "Auto destroy myself?"); - timeline_remove_group (GES_TIMELINE_ELEMENT_TIMELINE (group), - GES_GROUP (group)); + if (GES_TIMELINE_ELEMENT_TIMELINE (group)) + timeline_remove_group (GES_TIMELINE_ELEMENT_TIMELINE (group), + GES_GROUP (group)); return; }