move the lock/unlock code from tbm_bo_alloc to
tbm_bufmgr_internal_alloc_bo
Change-Id: Ic4ac270049b30a3859784363d56961a080de53c9
tbm_bo_alloc(tbm_bufmgr bufmgr, int size, int flags)
{
tbm_bo bo;
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 */
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 */
}
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();
-
-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_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);
_tbm_bufmgr_check_bo_cnt(bufmgr);
if (!bo) {
/* LCOV_EXCL_START */
TBM_ERR("memory allocationc failed.");
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;
- 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) {
- 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);
+ _tbm_set_last_result(error);
+ _tbm_bufmgr_mutex_unlock();
+ goto failed;
_tbm_bufmgr_initialize_bo(bufmgr, bo, flags);
_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();
+
+
+/* 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);
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);
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);