tbm_bo_alloc(tbm_bufmgr bufmgr, int size, int flags)
{
tbm_bo bo;
- tbm_error_e error;
-
- _tbm_bufmgr_mutex_lock();
- _tbm_set_last_result(TBM_ERROR_NONE);
-
- TBM_BO_RETURN_VAL_IF_FAIL(TBM_BUFMGR_IS_VALID(bufmgr), NULL);
- TBM_BO_RETURN_VAL_IF_FAIL(size > 0, NULL);
- bo = tbm_bufmgr_internal_alloc_bo(bufmgr, size, flags, &error);
+ bo = tbm_bufmgr_internal_alloc_bo(bufmgr, size, flags);
if (!bo) {
/* LCOV_EXCL_START */
- TBM_ERR("tbm_bufmgr_internal_alloc_bo failed. error:%d", error);
- _tbm_set_last_result(error);
- _tbm_bufmgr_mutex_unlock();
+ TBM_ERR("tbm_bufmgr_internal_alloc_bo failed.");
return NULL;
/* LCOV_EXCL_STOP */
}
- TBM_TRACE_BO("bo(%p) size(%d) refcnt(%d), flag(%s)\n", bo, size, bo->ref_cnt,
- _tbm_flag_to_str(bo->flags));
-
- _tbm_bufmgr_mutex_unlock();
-
return bo;
}
}
tbm_bo
-tbm_bufmgr_internal_alloc_bo(tbm_bufmgr bufmgr, int size, int flags, tbm_error_e *error)
+tbm_bufmgr_internal_alloc_bo(tbm_bufmgr bufmgr, int size, int flags)
{
+ tbm_error_e error = TBM_ERROR_NONE;
tbm_bo bo;
- tbm_bo_data *bo_data;
+
+ _tbm_bufmgr_mutex_lock();
+
+ TBM_BUFMGR_RETURN_VAL_IF_FAIL(TBM_BUFMGR_IS_VALID(bufmgr), NULL);
+ TBM_BUFMGR_RETURN_VAL_IF_FAIL(size > 0, NULL);
_tbm_bufmgr_check_bo_cnt(bufmgr);
if (!bo) {
/* LCOV_EXCL_START */
TBM_ERR("memory allocationc failed.");
- *error = TBM_ERROR_OUT_OF_MEMORY;
- return NULL;
+ error = TBM_ERROR_OUT_OF_MEMORY;
+ goto failed;
/* LCOV_EXCL_STOP */
}
- bo_data = tbm_module_alloc_bo_data(bufmgr->module, bo, size, flags, error);
- if (!bo_data) {
+ bo->bo_data = tbm_module_alloc_bo_data(bufmgr->module, bo, size, flags, &error);
+ if (!bo->bo_data) {
/* LCOV_EXCL_START */
- TBM_ERR("tbm_module_alloc_bo_data failed. size:%d flags:%s error:%d", size, _tbm_flag_to_str(flags), *error);
+ TBM_ERR("tbm_module_alloc_bo_data failed. size:%d flags:%s error:%d", size, _tbm_flag_to_str(flags), error);
free(bo);
- return NULL;
+ _tbm_set_last_result(error);
+ _tbm_bufmgr_mutex_unlock();
+ goto failed;
/* LCOV_EXCL_STOP */
}
- bo->bo_data = bo_data;
_tbm_bufmgr_initialize_bo(bufmgr, bo, flags);
+ TBM_TRACE_BO("bo(%p) size(%d) refcnt(%d), flag(%s)", bo, size, bo->ref_cnt, _tbm_flag_to_str(bo->flags));
+
+ _tbm_set_last_result(TBM_ERROR_NONE);
+ _tbm_bufmgr_mutex_unlock();
+
return bo;
+
+/* LCOV_EXCL_START */
+failed:
+ _tbm_set_last_result(error);
+ _tbm_bufmgr_mutex_unlock();
+
+ return NULL;
+/* LCOV_EXCL_STOP */
}
void _tbm_bufmgr_mutex_unlock(void);
tbm_bo tbm_bufmgr_internal_find_bo(tbm_bufmgr bufmgr, tbm_bo bo);
-tbm_bo tbm_bufmgr_internal_alloc_bo(tbm_bufmgr bufmgr, int size, int flags, tbm_error_e *error);
+tbm_bo tbm_bufmgr_internal_alloc_bo(tbm_bufmgr bufmgr, int size, int flags);
tbm_bo tbm_bufmgr_internal_alloc_bo_with_format(tbm_bufmgr bufmgr, int format, int bo_idx, int width, int bpp, int height, tbm_bo_memory_type flags, tbm_error_e *error);
tbm_bo tbm_bufmgr_internal_alloc_bo_with_bo_data(tbm_bufmgr bufmgr, tbm_bo_data *bo_data, int flags, tbm_error_e *error);
tbm_bo tbm_bufmgr_internal_import_bo_with_key(tbm_bufmgr bufmgr, tbm_key key);