[cairo] [PATCH] gl: don't access ctx after release

Yuanhan Liu yuanhan.liu at linux.intel.com
Mon May 28 23:33:40 PDT 2012


_cairo_gl_surface_map_to_image still access ctx->has_mesa_pack_invert after
release, which does't make sense.

Signed-off-by: Yuanhan Liu <yuanhan.liu at linux.intel.com>
---
 src/cairo-gl-surface.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/cairo-gl-surface.c b/src/cairo-gl-surface.c
index b8710e5..86e5401 100644
--- a/src/cairo-gl-surface.c
+++ b/src/cairo-gl-surface.c
@@ -1017,6 +1017,7 @@ _cairo_gl_surface_map_to_image (void      *abstract_surface,
     GLenum format, type;
     pixman_format_code_t pixman_format;
     unsigned int cpp;
+    cairo_bool_t has_mesa_pack_invert;
     cairo_bool_t invert;
     cairo_status_t status;
     int y;
@@ -1092,8 +1093,9 @@ _cairo_gl_surface_map_to_image (void      *abstract_surface,
     _cairo_gl_composite_flush (ctx);
     _cairo_gl_context_set_destination (ctx, surface, FALSE);
 
+    has_mesa_pack_invert = ctx->has_mesa_pack_invert;
     invert = ! _cairo_gl_surface_is_texture (surface) &&
-	    ctx->has_mesa_pack_invert;
+	    has_mesa_pack_invert;
 
     glPixelStorei (GL_PACK_ALIGNMENT, 4);
     if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP)
@@ -1118,7 +1120,7 @@ _cairo_gl_surface_map_to_image (void      *abstract_surface,
     }
 
     /* We must invert the image manualy if we lack GL_MESA_pack_invert */
-    if (! ctx->has_mesa_pack_invert && ! _cairo_gl_surface_is_texture (surface)) {
+    if (! has_mesa_pack_invert && ! _cairo_gl_surface_is_texture (surface)) {
 	uint8_t stack[1024], *row = stack;
 	uint8_t *top = image->data;
 	uint8_t *bot = image->data + (image->height-1)*image->stride;
-- 
1.7.7.6



More information about the cairo mailing list