summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Saunier <thibault.saunier@collabora.com>2013-06-28 19:15:59 -0400
committerMathieu Duponchelle <mathieu.duponchelle@epitech.eu>2013-07-09 22:13:41 +0200
commit7412de6f6ca71c58b82752637382c0d412af4d5c (patch)
treec594669aa23bc28117f07d00454b610d6820526e
parent8bc88a2ba82c3819d7586864b20581273c2784d4 (diff)
ges: Avoid leaking the timeline when grouping containers
-rw-r--r--ges/ges-clip.c4
-rw-r--r--ges/ges-container.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/ges/ges-clip.c b/ges/ges-clip.c
index e86f54d..b2b1a65 100644
--- a/ges/ges-clip.c
+++ b/ges/ges-clip.c
@@ -263,6 +263,8 @@ _add_child (GESContainer * container, GESTimelineElement * element)
guint max_prio, min_prio;
GESClipPrivate *priv = GES_CLIP (container)->priv;
+ g_return_val_if_fail (GES_IS_TRACK_ELEMENT (element), FALSE);
+
/* First make sure we work with a sorted list of GESTimelineElement-s */
_ges_container_sort_children (container);
@@ -432,7 +434,7 @@ _group (GList * containers)
goto done;
}
clip = GES_CLIP (tmp->data);
- tmptimeline = ges_timeline_element_get_timeline (element);
+ tmptimeline = GES_TIMELINE_ELEMENT_TIMELINE (element);
if (!timeline) {
GList *tmptrack;
diff --git a/ges/ges-container.c b/ges/ges-container.c
index 5ea7f57..708ddf0 100644
--- a/ges/ges-container.c
+++ b/ges/ges-container.c
@@ -652,7 +652,7 @@ ges_container_group (GList * containers)
g_return_val_if_fail (containers, NULL);
element = GES_TIMELINE_ELEMENT (containers->data);
- timeline = ges_timeline_element_get_timeline (element);
+ timeline = GES_TIMELINE_ELEMENT_TIMELINE (element);
g_return_val_if_fail (timeline, NULL);
if (g_list_length (containers) == 1)
@@ -660,8 +660,10 @@ ges_container_group (GList * containers)
for (tmp = containers; tmp; tmp = tmp->next) {
g_return_val_if_fail (GES_IS_CONTAINER (tmp->data), NULL);
- g_return_val_if_fail (ges_timeline_element_get_timeline
- (GES_TIMELINE_ELEMENT (tmp->data)) == timeline, NULL);
+ g_return_val_if_fail (GES_TIMELINE_ELEMENT_PARENT (tmp->data) == NULL,
+ NULL);
+ g_return_val_if_fail (GES_TIMELINE_ELEMENT_TIMELINE (tmp->data) == timeline,
+ NULL);
}
children_types = g_type_children (GES_TYPE_CONTAINER, &n_children);