if (!info)
return;
+ if (info->cur_buffer)
+ wl_buffer_destroy(info->cur_buffer);
+
free(info);
}
char plug_id[256];
screen_connector_toolkit_evas_h toolkit_evas_h;
cur_buffer_info_h c_buf_info;
+ bool duplicate_buffer = false;
toolkit_evas_h = (screen_connector_toolkit_evas_h)data;
if (toolkit_evas_h->img_tbm == NULL) {
if (tizen_remote_surface_get_version(trs) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION) {
c_buf_info = g_hash_table_lookup(__cur_buffer_table, toolkit_evas_h->cur_buffer);
if (c_buf_info != NULL) {
- struct wl_buffer *tmp_buffer = c_buf_info->cur_buffer;
- if (__cur_buffer_info_unref(trs, c_buf_info)) {
- if(tmp_buffer != NULL) {
- if (tmp_buffer != tbm) {
- wl_buffer_destroy(tmp_buffer);
- } else {
- LOGE("Same buffer %p", tmp_buffer);
- }
- }
+ if (c_buf_info->cur_buffer != tbm) {
+ __cur_buffer_info_unref(trs, c_buf_info);
+ } else {
+ duplicate_buffer = true;
+ LOGW("Same buffer %p", tbm);
}
}
}
__cur_buffer_info_ref(c_buf_info);
g_hash_table_insert(__cur_buffer_table, toolkit_evas_h->cur_buffer, c_buf_info);
} else {
- __cur_buffer_info_ref(c_buf_info);
+ if (!duplicate_buffer)
+ __cur_buffer_info_ref(c_buf_info);
}
if (is_added) {