diff options
author | Alexander Preisinger <alexander.preisinger@gmail.com> | 2013-08-26 18:35:57 +0200 |
---|---|---|
committer | Alexander Preisinger <alexander.preisinger@gmail.com> | 2013-08-26 20:34:06 +0200 |
commit | 56644b8abcb5478f7ba316efbcb3fb4facd7c418 (patch) | |
tree | 84f920de51be92385ccf7791fe3e0c5c54e61741 /video | |
parent | d3c4ba3ab824f4625c41270744249f50dba55acb (diff) | |
download | mpv-56644b8abcb5478f7ba316efbcb3fb4facd7c418.tar.bz2 mpv-56644b8abcb5478f7ba316efbcb3fb4facd7c418.tar.xz |
wayland: fix memory leaks
Diffstat (limited to 'video')
-rw-r--r-- | video/out/vo_wayland.c | 3 | ||||
-rw-r--r-- | video/out/wayland_common.c | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/video/out/vo_wayland.c b/video/out/vo_wayland.c index 9871503b81..cd39158250 100644 --- a/video/out/vo_wayland.c +++ b/video/out/vo_wayland.c @@ -525,6 +525,7 @@ static int query_format(struct vo *vo, uint32_t format) static int reconfig(struct vo *vo, struct mp_image_params *fmt, int flags) { struct priv *p = vo->priv; + mp_image_unrefp(&p->original_image); p->width = vo->dwidth; p->height = vo->dheight; @@ -568,6 +569,8 @@ static void uninit(struct vo *vo) for (int i = 0; i < MAX_BUFFERS; ++i) destroy_shm_buffer(&p->buffers[i]); + talloc_free(p->original_image); + vo_wayland_uninit(vo); } diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c index 7a79bb2873..47fc368ca0 100644 --- a/video/out/wayland_common.c +++ b/video/out/wayland_common.c @@ -687,8 +687,12 @@ static bool create_input (struct vo_wayland_state *wl) static void destroy_input (struct vo_wayland_state *wl) { - if (wl->input.keyboard) + if (wl->input.keyboard) { wl_keyboard_destroy(wl->input.keyboard); + xkb_map_unref(wl->input.xkb.keymap); + xkb_state_unref(wl->input.xkb.state); + xkb_context_unref(wl->input.xkb.context); + } if (wl->input.pointer) wl_pointer_destroy(wl->input.pointer); @@ -696,7 +700,6 @@ static void destroy_input (struct vo_wayland_state *wl) if (wl->input.seat) wl_seat_destroy(wl->input.seat); - xkb_context_unref(wl->input.xkb.context); } /*** mplayer2 interface ***/ |