From: Thibault Saunier Date: Fri, 12 Apr 2019 22:31:07 +0000 (-0400) Subject: xml-formatter: Fix some asset leaks X-Git-Tag: 1.19.3~493^2~518 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2d8be79cb7eea137d3099468f3d58a11b721eb0d;p=platform%2Fupstream%2Fgstreamer.git xml-formatter: Fix some asset leaks --- diff --git a/ges/ges-base-xml-formatter.c b/ges/ges-base-xml-formatter.c index 1715f59..3058d4d 100644 --- a/ges/ges-base-xml-formatter.c +++ b/ges/ges-base-xml-formatter.c @@ -513,7 +513,7 @@ _loading_done (GESFormatter * self) for (tmp = assets; tmp; tmp = tmp->next) { ges_asset_set_proxy (NULL, tmp->data); } - g_list_free (assets); + g_list_free_full (assets, g_object_unref); g_hash_table_foreach (priv->layers, (GHFunc) _set_auto_transition, NULL); ges_project_set_loaded (self->project, self); diff --git a/ges/ges-project.c b/ges/ges-project.c index 8163c51..278fb6e 100644 --- a/ges/ges-project.c +++ b/ges/ges-project.c @@ -370,7 +370,6 @@ ges_uri_assets_validate_uri (const gchar * nid) static void _dispose (GObject * object) { - GList *tmp; GESProjectPrivate *priv = GES_PROJECT (object)->priv; if (priv->assets) @@ -382,8 +381,8 @@ _dispose (GObject * object) if (priv->formatter_asset) gst_object_unref (priv->formatter_asset); - for (tmp = priv->formatters; tmp; tmp = tmp->next) - ges_project_remove_formatter (GES_PROJECT (object), tmp->data);; + while (priv->formatters) + ges_project_remove_formatter (GES_PROJECT (object), priv->formatters->data); G_OBJECT_CLASS (ges_project_parent_class)->dispose (object); } diff --git a/tests/check/ges/project.c b/tests/check/ges/project.c index 5228613..44b26bc 100644 --- a/tests/check/ges/project.c +++ b/tests/check/ges/project.c @@ -351,7 +351,9 @@ _add_properties (GESTimeline * timeline) (element), "posx", &posx, NULL); fail_unless_equals_int64 (posx, 42); } + } + g_list_free_full (track_elements, g_object_unref); break; default: break;