layer: remove the commit handler when all resource are freed 58/117758/1
authorBoram Park <boram1288.park@samsung.com>
Tue, 7 Mar 2017 09:42:31 +0000 (18:42 +0900)
committerBoram Park <boram1288.park@samsung.com>
Tue, 7 Mar 2017 09:42:31 +0000 (18:42 +0900)
Change-Id: I0f8afee8189a806cf4014faace4c09cdde8d51f1

src/tdm_layer.c

index f127664..070e485 100644 (file)
@@ -79,6 +79,8 @@ static void _tdm_layer_cb_wait_vblank(tdm_vblank *vblank, tdm_error error, unsig
                                                                          unsigned int tv_sec, unsigned int tv_usec, void *user_data);
 static void _tbm_layer_queue_acquirable_cb(tbm_surface_queue_h surface_queue, void *data);
 static void _tbm_layer_queue_destroy_cb(tbm_surface_queue_h surface_queue, void *data);
+static void _tdm_layer_cb_output_commit(tdm_output *output, unsigned int sequence,
+                                                                               unsigned int tv_sec, unsigned int tv_usec, void *user_data);
 
 EXTERN tdm_error
 tdm_layer_get_capabilities(tdm_layer *layer, tdm_layer_capability *capabilities)
@@ -359,6 +361,7 @@ _tdm_layer_free_all_buffers(tdm_private_layer *private_layer)
 
        LIST_FOR_EACH_ENTRY_SAFE(lm, lmm, &clone_list, link) {
                LIST_DEL(&lm->link);
+               tdm_output_remove_commit_handler_internal(private_output, _tdm_layer_cb_output_commit, lm);
                _tdm_layer_free_buffer(private_layer, lm->committed_buffer);
                free(lm);
        }