tbm_bo_import_fd(tbm_bufmgr bufmgr, tbm_fd fd)
{
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);
- bo = tbm_bufmgr_internal_import_bo_with_fd(bufmgr, fd, &error);
+ bo = tbm_bufmgr_internal_import_bo_with_fd(bufmgr, fd);
if (!bo) {
/* LCOV_EXCL_START */
- TBM_ERR("tbm_bufmgr_internal_import_fd failed. error:%d", error);
- _tbm_set_last_result(error);
- _tbm_bufmgr_mutex_unlock();
+ TBM_ERR("tbm_bufmgr_internal_import_fd failed.");
return NULL;
/* LCOV_EXCL_STOP */
}
- TBM_TRACE_BO("import bo(%p) ref(%d) fd(%d) flag(%s)\n",
- bo, bo->ref_cnt, fd, _tbm_flag_to_str(bo->flags));
-
- _tbm_bufmgr_mutex_unlock();
-
return bo;
}
}
tbm_bo
-tbm_bufmgr_internal_import_bo_with_fd(tbm_bufmgr bufmgr, tbm_fd fd, tbm_error_e *error)
+tbm_bufmgr_internal_import_bo_with_fd(tbm_bufmgr bufmgr, tbm_fd fd)
{
+ tbm_error_e error = TBM_ERROR_NONE;
tbm_bo bo, bo2;
int flags;
+ _tbm_bufmgr_mutex_lock();
+
+ TBM_BUFMGR_RETURN_VAL_IF_FAIL(TBM_BUFMGR_IS_VALID(bufmgr), NULL);
+
_tbm_bufmgr_check_bo_cnt(bufmgr);
bo = calloc(1, sizeof(struct _tbm_bo));
if (!bo) {
/* LCOV_EXCL_START */
TBM_ERR("memory allocationc failed.");
- *error = TBM_ERROR_OUT_OF_MEMORY;
- return NULL;
+ goto failed;
/* LCOV_EXCL_STOP */
}
- bo->bo_data = tbm_module_import_bo_data_with_fd(bufmgr->module, bo, fd, error);
+ bo->bo_data = tbm_module_import_bo_data_with_fd(bufmgr->module, bo, fd, &error);
if (!bo->bo_data) {
/* LCOV_EXCL_START */
TBM_ERR("tbm_module_import_bo_data_with_fd failed. tbm_fd:%d", fd);
free(bo);
- return NULL;
+ goto failed;
/* LCOV_EXCL_STOP */
}
bo2, bo2->ref_cnt, fd, _tbm_flag_to_str(bo2->flags));
bo2->ref_cnt++;
free(bo);
+ _tbm_set_last_result(TBM_ERROR_NONE);
+ _tbm_bufmgr_mutex_unlock();
return bo2;
}
- flags = tbm_bo_data_get_memory_types(bo->bo_data, error);
- if (*error != TBM_ERROR_NONE) {
- TBM_ERR("fail to get the bo flags(memory_types)");
+ flags = tbm_bo_data_get_memory_types(bo->bo_data, &error);
+ if (error != TBM_ERROR_NONE) {
+ TBM_WRN("tbm_bo_data_get_memory_types filed. use the default flags:TBM_BO_DEFAULT.");
flags = TBM_BO_DEFAULT;
+ error = TBM_ERROR_NONE;
}
+ TBM_TRACE_BO("import bo(%p) ref(%d) fd(%d) flag(%s)",
+ bo, bo->ref_cnt, fd, _tbm_flag_to_str(bo->flags));
+
_tbm_bufmgr_initialize_bo(bufmgr, bo, flags);
+ _tbm_set_last_result(TBM_ERROR_NONE);
+ _tbm_bufmgr_mutex_unlock();
+
return bo;
+
+failed:
+ _tbm_set_last_result(error);
+ _tbm_bufmgr_mutex_unlock();
+
+ return NULL;
}
/* LCOV_EXCL_STOP */
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_import_bo_with_fd(tbm_bufmgr bufmgr, tbm_fd fd, tbm_error_e *error);
+tbm_bo tbm_bufmgr_internal_import_bo_with_fd(tbm_bufmgr bufmgr, tbm_fd fd);
#endif /* _TBM_BUFMGR_INT_H_ */