uri-asset: do not reuse a passed GError pointer
authorJustin Kim <justin.kim@collabora.com>
Fri, 2 Oct 2015 14:08:03 +0000 (16:08 +0200)
committerThibault Saunier <tsaunier@gnome.org>
Fri, 2 Oct 2015 14:08:03 +0000 (16:08 +0200)
Summary: A passed GError is re-allocated when discoverer has no information.

Reviewers: thiblahute

Projects: #gstreamer_editing_services

Reviewed By: thiblahute

Differential Revision: https://phabricator.freedesktop.org/D302

.arcconfig
ges/ges-uri-asset.c

index 728aa7a..b98781c 100644 (file)
@@ -1,3 +1,5 @@
 {
-    "phabricator.uri" : "https:\/\/phabricator.freedesktop.org\/api\/"
+    "phabricator.uri" : "https:\/\/phabricator.freedesktop.org\/api\/",
+    "repository.callsign" : "GES",
+    "project": "GStreamer Editing Services"
 }
index 4648ea8..90b3cfd 100644 (file)
@@ -344,6 +344,7 @@ static void
 discoverer_discovered_cb (GstDiscoverer * discoverer,
     GstDiscovererInfo * info, GError * err, gpointer user_data)
 {
+  GError *error = NULL;
   const GstTagList *tags;
 
   const gchar *uri = gst_discoverer_info_get_uri (info);
@@ -356,13 +357,20 @@ discoverer_discovered_cb (GstDiscoverer * discoverer,
 
   if (gst_discoverer_info_get_result (info) == GST_DISCOVERER_OK) {
     ges_uri_clip_asset_set_info (mfs, info);
-  } else if (!err) {
-    err = g_error_new (GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_FAILED,
-        "Stream %s discovering failed (error code: %d)",
-        uri, gst_discoverer_info_get_result (info));
+  } else {
+    if (err) {
+      error = g_error_copy (err);
+    } else {
+      error = g_error_new (GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_FAILED,
+          "Stream %s discovering failed (error code: %d)",
+          uri, gst_discoverer_info_get_result (info));
+    }
   }
 
-  ges_asset_cache_set_loaded (GES_TYPE_URI_CLIP, uri, err);
+  ges_asset_cache_set_loaded (GES_TYPE_URI_CLIP, uri, error);
+
+  if (error)
+    g_error_free (error);
 }
 
 /* API implementation */