diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-06-20 20:20:56 +0200 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2013-06-21 17:19:00 +0200 |
commit | d8e76a531cd7064725fbb8ff842c60d6d6fabd3d (patch) | |
tree | 9af8a396f2b149ab3626f83e7be997c7cefba9cd | |
parent | 2cfdf732efafa3a8c556d562bcc0bed4106150a1 (diff) | |
download | ffmpeg-d8e76a531cd7064725fbb8ff842c60d6d6fabd3d.tar.gz |
avdevice/x11grab: allocate just one Cursor
Fixes resource leak and Ticket2450
Reviewed-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1ee8fadb811f3b1ef370c7d6c7bf62088f1cc954)
-rw-r--r-- | libavdevice/x11grab.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libavdevice/x11grab.c b/libavdevice/x11grab.c index 612400654b..7db1da675a 100644 --- a/libavdevice/x11grab.c +++ b/libavdevice/x11grab.c @@ -78,6 +78,7 @@ struct x11grab { int show_region; /**< set by a private option. */ char *framerate; /**< Set by a private option. */ + Cursor c; Window region_win; /**< This is used by show_region option. */ }; @@ -353,7 +354,6 @@ paint_mouse_pointer(XImage *image, struct x11grab *s) * Anyone who performs further investigation of the xlib API likely risks * permanent brain damage. */ uint8_t *pix = image->data; - Cursor c; Window w; XSetWindowAttributes attr; @@ -361,9 +361,10 @@ paint_mouse_pointer(XImage *image, struct x11grab *s) if (image->bits_per_pixel != 24 && image->bits_per_pixel != 32) return; - c = XCreateFontCursor(dpy, XC_left_ptr); + if(!s->c) + s->c = XCreateFontCursor(dpy, XC_left_ptr); w = DefaultRootWindow(dpy); - attr.cursor = c; + attr.cursor = s->c; XChangeWindowAttributes(dpy, w, CWCursor, &attr); xcim = XFixesGetCursorImage(dpy); |