diff options
author | David Mansfield <gnome-bugzilla@dm.cobite.com> | 2014-05-06 18:50:00 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2014-05-07 19:29:56 -0400 |
commit | 00275dfc9f2f5ddd841053f516f4f5274da8aa71 (patch) | |
tree | 1f11419c5df87e6dc9115209d6f1897b2fe3ddcf /gdk/gdkcursor.c | |
parent | 74405cc964e405ea00cfac22856a62fea5ec648e (diff) | |
download | gtk+-00275dfc9f2f5ddd841053f516f4f5274da8aa71.tar.gz |
GdkCursor: Don't leak a cairo surface
The function gdk_cursor_new_from_pixbuf creates a cairo surface
to pass to its backend implementation, but doesn't destroy it
afterwards.
https://bugzilla.gnome.org/show_bug.cgi?id=729670
Diffstat (limited to 'gdk/gdkcursor.c')
-rw-r--r-- | gdk/gdkcursor.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gdk/gdkcursor.c b/gdk/gdkcursor.c index 914d2fbec4..af2de2a9d4 100644 --- a/gdk/gdkcursor.c +++ b/gdk/gdkcursor.c @@ -318,6 +318,7 @@ gdk_cursor_new_from_pixbuf (GdkDisplay *display, const char *option; char *end; gint64 value; + GdkCursor *cursor; g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL); @@ -346,7 +347,11 @@ gdk_cursor_new_from_pixbuf (GdkDisplay *display, surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, 1, NULL); - return GDK_DISPLAY_GET_CLASS (display)->get_cursor_for_surface (display, surface, x, y); + cursor = GDK_DISPLAY_GET_CLASS (display)->get_cursor_for_surface (display, surface, x, y); + + cairo_surface_destroy (surface); + + return cursor; } /** |