diff options
author | Uli Schlachter <psychon@znc.in> | 2011-07-20 10:42:52 +0200 |
---|---|---|
committer | Uli Schlachter <psychon@znc.in> | 2011-07-20 10:53:46 +0200 |
commit | ac9482bdf00ec2295273ec69d3bca3e93e2ce183 (patch) | |
tree | c165268713942d43b41689314ee64d3c607f31c5 /src/cairo-xcb-screen.c | |
parent | c28196d9451f006b91906b68564f3959ce48af46 (diff) | |
download | cairo-ac9482bdf00ec2295273ec69d3bca3e93e2ce183.tar.gz |
xcb: Fix a GC leak when a screen is finished
Signed-off-by: Uli Schlachter <psychon@znc.in>
Diffstat (limited to 'src/cairo-xcb-screen.c')
-rw-r--r-- | src/cairo-xcb-screen.c | 5 |
1 files changed, 5 insertions, 0 deletions
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); |