summaryrefslogtreecommitdiff
path: root/gdk/gdkcursor.c
diff options
context:
space:
mode:
authorDavid Mansfield <gnome-bugzilla@dm.cobite.com>2014-05-06 18:50:00 +0000
committerMatthias Clasen <mclasen@redhat.com>2014-05-07 19:29:56 -0400
commit00275dfc9f2f5ddd841053f516f4f5274da8aa71 (patch)
tree1f11419c5df87e6dc9115209d6f1897b2fe3ddcf /gdk/gdkcursor.c
parent74405cc964e405ea00cfac22856a62fea5ec648e (diff)
downloadgtk+-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.c7
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;
}
/**