};
static void
+_free_pending_clip (GESBaseXmlFormatterPrivate * priv, PendingClip * pend);
+
+static void
_free_layer_entry (LayerEntry * entry)
{
gst_object_unref (entry->layer);
{
if (pgroup->group)
g_object_unref (pgroup->group);
- g_list_free (pgroup->pending_children);
+ g_list_free_full (pgroup->pending_children, g_free);
g_slice_free (PendingGroup, pgroup);
}
-
/*
enum
{
_dispose (GObject * object)
{
GESBaseXmlFormatterPrivate *priv = _GET_PRIV (object);
+ GList *pendings, *pending_clips_lists;
+
+ pending_clips_lists = g_hash_table_get_values (priv->assetid_pendingclips);
+ for (pendings = pending_clips_lists; pendings; pendings = pendings->next)
+ g_list_free_full (pendings, (GDestroyNotify) _free_pending_clip);
+ g_list_free (pending_clips_lists);
g_clear_pointer (&priv->assetid_pendingclips, g_hash_table_unref);
g_clear_pointer (&priv->containers, g_hash_table_unref);
error->message);
pendings = g_hash_table_lookup (priv->assetid_pendingclips, id);
- for (tmp = pendings; tmp; tmp = tmp->next)
- _free_pending_clip (priv, (PendingClip *) tmp->data);
-
_free_pending_asset (priv, passet);
goto done;
}
_add_track_element (self, clip, gst_object_ref (peffect->trackelement),
peffect->track_id, peffect->children_properties, peffect->properties);
}
- _free_pending_clip (priv, pend);
}
/* And now add to the project */
g_free (possible_id);
if (pendings) {
+ for (tmp = pendings; tmp; tmp = tmp->next)
+ _free_pending_clip (priv, tmp->data);
g_hash_table_remove (priv->assetid_pendingclips, id);
g_list_free (pendings);
}