summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2014-10-28 16:06:42 -0400
committerMatthias Clasen <mclasen@redhat.com>2014-10-28 16:07:57 -0400
commitc8d4eefa719108c9ead491f93c557fa0c8f14c98 (patch)
tree287cea0c62c991f87b936ddf79a74bacd2318e98
parent0814cd9f8b07ada390749da9e918f7100a0e24a7 (diff)
downloadgtk+-c8d4eefa719108c9ead491f93c557fa0c8f14c98.tar.gz
Plug some memory leaks in GL support
valgrind pointed these out.
-rw-r--r--gdk/x11/gdkglcontext-x11.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gdk/x11/gdkglcontext-x11.c b/gdk/x11/gdkglcontext-x11.c
index 061b15af5e..12a6b8a843 100644
--- a/gdk/x11/gdkglcontext-x11.c
+++ b/gdk/x11/gdkglcontext-x11.c
@@ -286,6 +286,7 @@ glx_pixmap_get (cairo_surface_t *surface)
GLXFBConfig *fbconfigs;
int nfbconfigs;
XVisualInfo *visinfo;
+ VisualID visualid;
int i, value;
gboolean y_inverted;
gboolean with_alpha;
@@ -304,7 +305,13 @@ glx_pixmap_get (cairo_surface_t *surface)
for (i = 0; i < nfbconfigs; i++)
{
visinfo = glXGetVisualFromFBConfig (display, fbconfigs[i]);
- if (!visinfo || visinfo->visualid != XVisualIDFromVisual (visual))
+ if (!visinfo)
+ continue;
+
+ visualid = visinfo->visualid;
+ XFree (visinfo);
+
+ if (visualid != XVisualIDFromVisual (visual))
continue;
glXGetFBConfigAttrib (display, fbconfigs[i], GLX_DRAWABLE_TYPE, &value);
@@ -338,6 +345,7 @@ glx_pixmap_get (cairo_surface_t *surface)
&value);
if (!value)
continue;
+
format = GLX_TEXTURE_FORMAT_RGBA_EXT;
}
@@ -350,6 +358,8 @@ glx_pixmap_get (cairo_surface_t *surface)
break;
}
+ XFree (fbconfigs);
+
if (i == nfbconfigs)
return NULL;