TBM_ERR("error: fail to tbm_bo_alloc_with_format fmt(%s) idx(%d) w(%d) h(%d) mem_types(%s)\n",
FOURCC_STR(format), bo_idx, width, height, _tbm_flag_to_str(flags));
_tbm_set_last_result(TBM_ERROR_OUT_OF_MEMORY);
- _tbm_bufmgr_mutex_unlock();
- return NULL;
+ goto calloc_fail;
}
_tbm_util_check_bo_cnt(bufmgr);
TBM_ERR("error: not supported tbm_bo_alloc_with_format\n");
_tbm_set_last_result(TBM_ERROR_NOT_SUPPORTED);
- free(bo);
- _tbm_bufmgr_mutex_unlock();
- return NULL;
+ goto bo_alloc_fail;
}
}
/* LCOV_EXCL_STOP */
- if (bufmgr->use_hal_tbm)
+ if (bufmgr->use_hal_tbm) {
bo_data = (tbm_backend_bo_data *)hal_tbm_bufmgr_alloc_bo_with_format(bufmgr->hal_bufmgr,
format, bo_idx, width, height, (hal_tbm_bo_memory_type)flags, (hal_tbm_error *)error);
- else
+ if (!bo_data) {
+ TBM_ERR("error: fail to tbm_bo_alloc_with_format\n");
+ _tbm_set_last_result(*error);
+ goto bo_alloc_fail;
+ }
+ } else {
bo_data = bufmgr->bufmgr_func->bufmgr_alloc_bo_with_format(bufmgr->bufmgr_data, format, bo_idx,
width, height, flags, error);
- if (!bo_data) {
- TBM_ERR("error: fail to tbm_bo_alloc_with_format fmt(%s) idx(%d) w(%d) h(%d) mem_types(%s)\n",
- FOURCC_STR(format), bo_idx, width, height, _tbm_flag_to_str(flags));
- _tbm_set_last_result(*error);
- free(bo);
- _tbm_bufmgr_mutex_unlock();
- return NULL;
+ if (!bo_data) {
+ TBM_ERR("error: fail to tbm_bo_alloc_with_format fmt(%s) idx(%d) w(%d) h(%d) mem_types(%s)\n",
+ FOURCC_STR(format), bo_idx, width, height, _tbm_flag_to_str(flags));
+ _tbm_set_last_result(*error);
+ goto bo_alloc_fail;
+ }
}
bo->bo_data = bo_data;
_tbm_bufmgr_mutex_unlock();
return bo;
+
+bo_alloc_fail:
+ free(bo);
+calloc_fail:
+ _tbm_bufmgr_mutex_unlock();
+ return NULL;
}
tbm_bo