gl: Fix GError leaks during failures
authorVineeth T M <vineeth.tm@samsung.com>
Thu, 17 Sep 2015 04:35:02 +0000 (13:35 +0900)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 17 Sep 2015 09:52:55 +0000 (11:52 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=755140

ext/gl/gstglbasemixer.c
ext/gl/gstglstereosplit.c
ext/gl/gstgltestsrc.c
ext/gtk/gtkgstglwidget.c
gst-libs/gst/gl/gstglbasebuffer.c
gst-libs/gst/gl/gstglbasefilter.c
gst-libs/gst/gl/gstglfilter.c

index f8c8d193d51a786610649f5fca8f708368305800..3bad76955d12478ab6d98ea4d32ab3e06118de36 100644 (file)
@@ -496,6 +496,7 @@ context_error:
   {
     GST_ELEMENT_ERROR (mix, RESOURCE, NOT_FOUND, ("%s", error->message),
         (NULL));
+    g_clear_error (&error);
     return FALSE;
   }
 }
index 9c560024017d9b2ec18474dabbb7452100825034..e175df893c7080ae4a611db067d0f141735f7657 100644 (file)
@@ -587,6 +587,7 @@ context_error:
   {
     GST_ELEMENT_ERROR (self, RESOURCE, NOT_FOUND, ("%s", error->message),
         (NULL));
+    g_clear_error (&error);
     return FALSE;
   }
 }
index 877b09a058afe6d6b61735b4aaf3efd458b05b55..93ddfda409edce2d27ba95b7924bb2b051b62dae 100644 (file)
@@ -853,6 +853,7 @@ context_error:
   {
     GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND, ("%s", error->message),
         (NULL));
+    g_clear_error (&error);
     if (src->context)
       gst_object_unref (src->context);
     src->context = NULL;
index 164fca336ff3975dfdc0711f72dee7ff12e37da2..b16725fc967cec5f711c3980f45ef038ac3c3b4e 100644 (file)
@@ -460,6 +460,7 @@ _get_gl_context (GtkGstGLWidget * gst_widget)
 
     GST_ERROR_OBJECT (gst_widget, "Error creating GdkGLContext : %s",
         error ? error->message : "No error set by Gdk");
+    g_clear_error (&error);
     g_assert_not_reached ();
     return;
   }
@@ -501,6 +502,7 @@ _get_gl_context (GtkGstGLWidget * gst_widget)
     gst_gl_context_activate (priv->other_context, TRUE);
     if (!gst_gl_context_fill_info (priv->other_context, &error)) {
       GST_ERROR ("failed to retrieve gdk context info: %s", error->message);
+      g_clear_error (&error);
       g_object_unref (priv->other_context);
       priv->other_context = NULL;
     } else {
index 61091b831e328b8292a05af8c21f33ffa3b3c666..495e104ca85f5552a77603f576786b52ca7c8fb0 100644 (file)
@@ -110,6 +110,7 @@ _mem_create_gl (GstGLContext * context, struct create_data *transfer)
 
   GST_CAT_ERROR (GST_CAT_GL_BASE_BUFFER, "Failed to create GL buffer: %s",
       error->message);
+  g_clear_error (&error);
 }
 
 void
index 8538644ff9869b2309a2a3893fef96c8854a582d..e7b2e236a720625abb076cc58fc383fffd391765 100644 (file)
@@ -368,6 +368,7 @@ context_error:
   {
     GST_ELEMENT_ERROR (trans, RESOURCE, NOT_FOUND, ("%s", error->message),
         (NULL));
+    g_clear_error (&error);
     return FALSE;
   }
 error:
index 600b7c7c6c7268e26d5f645e6caad3d1df99a72b..fd29ee030e6c74ea5aaa1ac01896fae608698cd9 100644 (file)
@@ -178,7 +178,6 @@ gst_gl_filter_gl_start (GstGLBaseFilter * base_filter)
   GstGLFilterClass *filter_class = GST_GL_FILTER_GET_CLASS (filter);
   GstGLContext *context = GST_GL_BASE_FILTER (filter)->context;
   gint out_width, out_height;
-  GError *error = NULL;
 
   out_width = GST_VIDEO_INFO_WIDTH (&filter->out_info);
   out_height = GST_VIDEO_INFO_HEIGHT (&filter->out_info);
@@ -205,7 +204,7 @@ gst_gl_filter_gl_start (GstGLBaseFilter * base_filter)
 
 context_error:
   {
-    GST_ELEMENT_ERROR (filter, RESOURCE, NOT_FOUND, ("%s", error->message),
+    GST_ELEMENT_ERROR (filter, RESOURCE, NOT_FOUND, ("Could not generate FBO"),
         (NULL));
     return FALSE;
   }