From ac9482bdf00ec2295273ec69d3bca3e93e2ce183 Mon Sep 17 00:00:00 2001 From: Uli Schlachter Date: Wed, 20 Jul 2011 10:42:52 +0200 Subject: [PATCH] xcb: Fix a GC leak when a screen is finished Signed-off-by: Uli Schlachter --- src/cairo-xcb-screen.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/cairo-xcb-screen.c b/src/cairo-xcb-screen.c index 209747560..a7802c2df 100644 --- a/src/cairo-xcb-screen.c +++ b/src/cairo-xcb-screen.c @@ -80,6 +80,11 @@ _cairo_xcb_screen_finish (cairo_xcb_screen_t *screen) for (i = 0; i < ARRAY_LENGTH (screen->stock_colors); i++) cairo_surface_destroy (screen->stock_colors[i]); + for (i = 0; i < ARRAY_LENGTH (screen->gc); i++) { + if (((screen->gc_depths >> (8*i)) & 0xff) != 0) + _cairo_xcb_connection_free_gc (screen->connection, screen->gc[i]); + } + _cairo_cache_fini (&screen->linear_pattern_cache); _cairo_cache_fini (&screen->radial_pattern_cache); _cairo_freelist_fini (&screen->pattern_cache_entry_freelist);