From a90fe6e094faf4ab3ce281e5e551d06565f7e9bd Mon Sep 17 00:00:00 2001 From: Taekyun Kim Date: Tue, 20 Oct 2015 15:51:06 +0900 Subject: [PATCH] pepper: Correctly manage buffer ref count when keep_buffer is TRUE Change-Id: I445af4554951b7a94dc24623aae503669477ef04 --- src/lib/pepper/surface.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/lib/pepper/surface.c b/src/lib/pepper/surface.c index a9e8979..6bfe789 100644 --- a/src/lib/pepper/surface.c +++ b/src/lib/pepper/surface.c @@ -381,8 +381,12 @@ pepper_surface_commit(pepper_surface_t *surface) if (surface->buffer.buffer) { pepper_event_listener_remove(surface->buffer.destroy_listener); - pepper_event_listener_remove(surface->buffer.release_listener); - pepper_buffer_unreference(surface->buffer.buffer); + + if (surface->buffer.keep_buffer) + { + pepper_event_listener_remove(surface->buffer.release_listener); + pepper_buffer_unreference(surface->buffer.buffer); + } } if (surface->pending.buffer) @@ -559,8 +563,5 @@ pepper_surface_flush_damage(pepper_surface_t *surface) pixman_region32_clear(&surface->damage_region); if (surface->buffer.buffer && !surface->buffer.keep_buffer) - { pepper_buffer_unreference(surface->buffer.buffer); - pepper_event_listener_remove(surface->buffer.destroy_listener); - } } -- 2.7.4