summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVineeth T M <vineeth.tm@samsung.com>2015-09-17 13:35:02 +0900
committerSebastian Dröge <sebastian@centricular.com>2015-09-17 11:52:55 +0200
commit00438fdff0321495df5095dd68509809a8c56663 (patch)
treea22a7b1fb2282afaefe1f460c9244dd86b424f7d
parent0cb160a685b1c5856ffaf372d78ce880b9d579b1 (diff)
downloadgstreamer-plugins-bad-00438fdff0321495df5095dd68509809a8c56663.tar.gz
gl: Fix GError leaks during failures
https://bugzilla.gnome.org/show_bug.cgi?id=755140
-rw-r--r--ext/gl/gstglbasemixer.c1
-rw-r--r--ext/gl/gstglstereosplit.c1
-rw-r--r--ext/gl/gstgltestsrc.c1
-rw-r--r--ext/gtk/gtkgstglwidget.c2
-rw-r--r--gst-libs/gst/gl/gstglbasebuffer.c1
-rw-r--r--gst-libs/gst/gl/gstglbasefilter.c1
-rw-r--r--gst-libs/gst/gl/gstglfilter.c3
7 files changed, 8 insertions, 2 deletions
diff --git a/ext/gl/gstglbasemixer.c b/ext/gl/gstglbasemixer.c
index f8c8d193d..3bad76955 100644
--- a/ext/gl/gstglbasemixer.c
+++ b/ext/gl/gstglbasemixer.c
@@ -496,6 +496,7 @@ context_error:
{
GST_ELEMENT_ERROR (mix, RESOURCE, NOT_FOUND, ("%s", error->message),
(NULL));
+ g_clear_error (&error);
return FALSE;
}
}
diff --git a/ext/gl/gstglstereosplit.c b/ext/gl/gstglstereosplit.c
index 9c5600240..e175df893 100644
--- a/ext/gl/gstglstereosplit.c
+++ b/ext/gl/gstglstereosplit.c
@@ -587,6 +587,7 @@ context_error:
{
GST_ELEMENT_ERROR (self, RESOURCE, NOT_FOUND, ("%s", error->message),
(NULL));
+ g_clear_error (&error);
return FALSE;
}
}
diff --git a/ext/gl/gstgltestsrc.c b/ext/gl/gstgltestsrc.c
index 877b09a05..93ddfda40 100644
--- a/ext/gl/gstgltestsrc.c
+++ b/ext/gl/gstgltestsrc.c
@@ -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;
diff --git a/ext/gtk/gtkgstglwidget.c b/ext/gtk/gtkgstglwidget.c
index 164fca336..b16725fc9 100644
--- a/ext/gtk/gtkgstglwidget.c
+++ b/ext/gtk/gtkgstglwidget.c
@@ -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 {
diff --git a/gst-libs/gst/gl/gstglbasebuffer.c b/gst-libs/gst/gl/gstglbasebuffer.c
index 61091b831..495e104ca 100644
--- a/gst-libs/gst/gl/gstglbasebuffer.c
+++ b/gst-libs/gst/gl/gstglbasebuffer.c
@@ -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
diff --git a/gst-libs/gst/gl/gstglbasefilter.c b/gst-libs/gst/gl/gstglbasefilter.c
index 8538644ff..e7b2e236a 100644
--- a/gst-libs/gst/gl/gstglbasefilter.c
+++ b/gst-libs/gst/gl/gstglbasefilter.c
@@ -368,6 +368,7 @@ context_error:
{
GST_ELEMENT_ERROR (trans, RESOURCE, NOT_FOUND, ("%s", error->message),
(NULL));
+ g_clear_error (&error);
return FALSE;
}
error:
diff --git a/gst-libs/gst/gl/gstglfilter.c b/gst-libs/gst/gl/gstglfilter.c
index 600b7c7c6..fd29ee030 100644
--- a/gst-libs/gst/gl/gstglfilter.c
+++ b/gst-libs/gst/gl/gstglfilter.c
@@ -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;
}