tbm_surface = wl_egl_buffer->tbm_surface;
if (tbm_surface_internal_is_valid(tbm_surface)) {
+ tbm_surface_queue_error_e tsq_err = TBM_SURFACE_QUEUE_ERROR_INVALID_SURFACE;
tpl_gmutex_lock(&wl_egl_buffer->mutex);
if (wl_egl_buffer->status == COMMITTED) {
tpl_wl_egl_surface_t *wl_egl_surface = wl_egl_buffer->wl_egl_surface;
- tbm_surface_queue_error_e tsq_err;
zwp_linux_buffer_release_v1_destroy(wl_egl_buffer->buffer_release);
wl_egl_buffer->buffer_release = NULL;
tbm_surface);
if (tsq_err != TBM_SURFACE_QUEUE_ERROR_NONE)
TPL_ERR("tbm_surface(%p) tsq_err(%d)", tbm_surface, tsq_err);
-
- tbm_surface_internal_unref(tbm_surface);
}
tpl_gmutex_unlock(&wl_egl_buffer->mutex);
+ if (tsq_err == TBM_SURFACE_QUEUE_ERROR_NONE)
+ tbm_surface_internal_unref(tbm_surface);
+
} else {
TPL_ERR("Invalid parameter | tbm_surface(%p)", tbm_surface);
}
tbm_surface = wl_egl_buffer->tbm_surface;
if (tbm_surface_internal_is_valid(tbm_surface)) {
+ tbm_surface_queue_error_e tsq_err = TBM_SURFACE_QUEUE_ERROR_INVALID_SURFACE;
tpl_gmutex_lock(&wl_egl_buffer->mutex);
if (wl_egl_buffer->status == COMMITTED) {
tpl_wl_egl_surface_t *wl_egl_surface = wl_egl_buffer->wl_egl_surface;
- tbm_surface_queue_error_e tsq_err;
zwp_linux_buffer_release_v1_destroy(wl_egl_buffer->buffer_release);
wl_egl_buffer->buffer_release = NULL;
tbm_surface);
if (tsq_err != TBM_SURFACE_QUEUE_ERROR_NONE)
TPL_ERR("tbm_surface(%p) tsq_err(%d)", tbm_surface, tsq_err);
-
- tbm_surface_internal_unref(tbm_surface);
}
tpl_gmutex_unlock(&wl_egl_buffer->mutex);
+ if (tsq_err == TBM_SURFACE_QUEUE_ERROR_NONE)
+ tbm_surface_internal_unref(tbm_surface);
+
} else {
TPL_ERR("Invalid parameter | tbm_surface(%p)", tbm_surface);
}