X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftbm_bufmgr.c;h=5f55aefcbeeabe5f11ec19bfc33c4d9cbe317690;hb=8861ae850655eff7a7b6032471fc584a71cd7f4f;hp=ac48c1e3d3c370ff337a31be714263b7b466883b;hpb=f2a1bef363f591aefe123240577e60c13e0347e5;p=platform%2Fcore%2Fuifw%2Flibtbm.git diff --git a/src/tbm_bufmgr.c b/src/tbm_bufmgr.c index ac48c1e..5f55aef 100644 --- a/src/tbm_bufmgr.c +++ b/src/tbm_bufmgr.c @@ -155,18 +155,22 @@ _tbm_flag_to_str(int f) int c = 0; if (f & TBM_BO_SCANOUT) - c = snprintf(&str[c], 255, "SCANOUT"); + c += snprintf(&str[c], 255-c, "SCANOUT"); if (f & TBM_BO_NONCACHABLE) { - if (c) - c = snprintf(&str[c], 255, ", "); - c = snprintf(&str[c], 255, "NONCACHABLE,"); + if (c >= 0 && c < 255) + c += snprintf(&str[c], 255-c, ", "); + + if (c >= 0 && c < 255) + c += snprintf(&str[c], 255-c, "NONCACHABLE,"); } if (f & TBM_BO_WC) { - if (c) - c = snprintf(&str[c], 255, ", "); - c = snprintf(&str[c], 255, "WC"); + if (c >= 0 && c < 255) + c += snprintf(&str[c], 255-c, ", "); + + if (c >= 0 && c < 255) + c += snprintf(&str[c], 255-c, "WC"); } } @@ -616,8 +620,8 @@ _tbm_load_module(tbm_bufmgr bufmgr, int fd) } /* LCOV_EXCL_STOP */ -tbm_bufmgr -tbm_bufmgr_init(int fd) +static tbm_bufmgr +_tbm_bufmgr_init(int fd, int server) { #ifdef TBM_BUFMGR_INIT_TIME struct timeval start_tv, end_tv; @@ -745,6 +749,16 @@ tbm_bufmgr_init(int fd) return gBufMgr; } +tbm_bufmgr +tbm_bufmgr_init(int fd) +{ + tbm_bufmgr bufmgr; + + bufmgr = _tbm_bufmgr_init(fd, 0); + + return bufmgr; +} + void tbm_bufmgr_deinit(tbm_bufmgr bufmgr) { @@ -1233,6 +1247,7 @@ tbm_bo_unmap(tbm_bo bo) TBM_BUFMGR_RETURN_VAL_IF_FAIL(TBM_BUFMGR_IS_VALID(gBufMgr), 0); TBM_BUFMGR_RETURN_VAL_IF_FAIL(_tbm_bo_is_valid(bo), 0); + TBM_BUFMGR_RETURN_VAL_IF_FAIL(bo->map_cnt > 0, 0); ret = bufmgr->backend->bo_unmap(bo); if (!ret) { @@ -1664,6 +1679,12 @@ tbm_bufmgr_debug_dump_set_scale(double scale) } int +tbm_bufmgr_debug_get_ref_count(void) +{ + return (gBufMgr) ? gBufMgr->ref_count : 0; +} + +int tbm_bufmgr_debug_queue_dump(char *path, int count, int onoff) { pthread_mutex_lock(&gLock); @@ -1752,7 +1773,7 @@ _tbm_bo_set_surface(tbm_bo bo, tbm_surface_h surface) } int -tbm_bufmgr_bind_native_display(tbm_bufmgr bufmgr, void *NativeDisplay) +tbm_bufmgr_bind_native_display(tbm_bufmgr bufmgr, void *native_display) { int ret; @@ -1761,21 +1782,21 @@ tbm_bufmgr_bind_native_display(tbm_bufmgr bufmgr, void *NativeDisplay) TBM_BUFMGR_RETURN_VAL_IF_FAIL(TBM_BUFMGR_IS_VALID(gBufMgr), 0); if (!bufmgr->backend->bufmgr_bind_native_display) { - TBM_TRACE("skip: tbm_bufmgr(%p) NativeDisplay(%p)\n", - bufmgr, NativeDisplay); + TBM_TRACE("skip: tbm_bufmgr(%p) native_display(%p)\n", + bufmgr, native_display); _tbm_bufmgr_mutex_unlock(); return 1; } - ret = bufmgr->backend->bufmgr_bind_native_display(bufmgr, NativeDisplay); + ret = bufmgr->backend->bufmgr_bind_native_display(bufmgr, native_display); if (!ret) { - TBM_LOG_E("error: tbm_bufmgr(%p) NativeDisplay(%p)\n", - bufmgr, NativeDisplay); + TBM_LOG_E("error: tbm_bufmgr(%p) native_display(%p)\n", + bufmgr, native_display); _tbm_bufmgr_mutex_unlock(); return 0; } - TBM_TRACE("tbm_bufmgr(%p) NativeDisplay(%p)\n", bufmgr, NativeDisplay); + TBM_TRACE("tbm_bufmgr(%p) native_display(%p)\n", bufmgr, native_display); _tbm_bufmgr_mutex_unlock();