This is the temporary solution(kismo.kim@samsung.com) to avoid the release
handler is called when commit failed. It looks we need something like the
pp_done handler to let the display server know if the pp operation is done
successfully or not.
Change-Id: I1513a99c89102431fd3b74b656d1f1243528d28a
}
}
+INTERN void
+tdm_buffer_remove_release_handler_internal(tbm_surface_h buffer)
+{
+ tdm_buffer_info *buf_info;
+ tdm_buffer_func_info *func_info = NULL, *next = NULL;
+
+ TDM_RETURN_IF_FAIL(buffer != NULL);
+
+ buf_info = tdm_buffer_get_info(buffer);
+ TDM_RETURN_IF_FAIL(buf_info != NULL);
+
+ LIST_FOR_EACH_ENTRY_SAFE(func_info, next, &buf_info->release_funcs, link) {
+
+ LIST_DEL(&func_info->link);
+ free(func_info);
+
+ return;
+ }
+}
EXTERN tbm_surface_h
tdm_buffer_ref_backend(tbm_surface_h buffer)
LIST_DEL(&b->commit_link);
if (ret != TDM_ERROR_NONE) {
+ tdm_buffer_remove_release_handler_internal(b->src);
+ tdm_buffer_remove_release_handler_internal(b->dst);
+
tdm_buffer_unref_backend(b->src);
tdm_buffer_unref_backend(b->dst);
LIST_DEL(&b->link);
void
tdm_buffer_list_dump(struct list_head *list);
+void
+tdm_buffer_remove_release_handler_internal(tbm_surface_h buffer);
+
/* event functions for private */
tdm_error
tdm_event_loop_init(tdm_private_display *private_display);