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 16:45:36 +0200 |
commit | fbb1af39e464f519fbc8b2dd964d80ac19eb76b6 (patch) | |
tree | 8dc1d63d41688a5bd3531bfb2ebe3252ab620833 | |
parent | 073bde2b1fbb19eeabd00abe944cdf5c3cfdb000 (diff) | |
download | ffmpeg-fbb1af39e464f519fbc8b2dd964d80ac19eb76b6.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); |