From b94344f1c70484d4ee59bb8765021a81fd54b366 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Thu, 7 Sep 2017 17:03:50 +0100 Subject: [PATCH] egl: simplify _eglDebugReport* API Instead of having three, almost identical but not quite, _eglDebugReport* functions, simply fold them into one. While doing so drop the unnecessary arguments 'command' and 'objectLabel'. Former is identical to funcName, while the latter is already stored (yet unused) in _EGLThreadInfo::CurrentObjectLabel. Cc: Kyle Brenneman Cc: Adam Jackson Signed-off-by: Emil Velikov Reviewed-by: Eric Engestrom (IRC) --- src/egl/main/eglapi.c | 3 +-- src/egl/main/eglcurrent.c | 53 ++++++++++++----------------------------------- src/egl/main/eglcurrent.h | 7 ------- 3 files changed, 14 insertions(+), 49 deletions(-) diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index e3f10fc..9a59d9e 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -274,8 +274,7 @@ _eglSetFuncName(const char *funcName, _EGLDisplay *disp, EGLenum objectType, _EG return EGL_TRUE; } - _eglDebugReportFull(EGL_BAD_ALLOC, funcName, funcName, - EGL_DEBUG_MSG_CRITICAL_KHR, NULL, NULL); + _eglDebugReport(EGL_BAD_ALLOC, funcName, EGL_DEBUG_MSG_CRITICAL_KHR, NULL); return EGL_FALSE; } diff --git a/src/egl/main/eglcurrent.c b/src/egl/main/eglcurrent.c index df0463d..db42b45 100644 --- a/src/egl/main/eglcurrent.c +++ b/src/egl/main/eglcurrent.c @@ -294,37 +294,36 @@ _eglError(EGLint errCode, const char *msg) return EGL_FALSE; } -/** - * Returns the label set for the current thread. - */ -EGLLabelKHR -_eglGetThreadLabel(void) -{ - _EGLThreadInfo *t = _eglGetCurrentThread(); - return t->Label; -} - -static void -_eglDebugReportFullv(EGLenum error, const char *command, const char *funcName, - EGLint type, EGLLabelKHR objectLabel, const char *message, va_list args) +void +_eglDebugReport(EGLenum error, const char *funcName, + EGLint type, const char *message, ...) { + _EGLThreadInfo *thr = _eglGetCurrentThread(); EGLDEBUGPROCKHR callback = NULL; + va_list args; + + if (funcName == NULL) + funcName = thr->CurrentFuncName; mtx_lock(_eglGlobal.Mutex); if (_eglGlobal.debugTypesEnabled & DebugBitFromType(type)) { callback = _eglGlobal.debugCallback; } + mtx_unlock(_eglGlobal.Mutex); if (callback != NULL) { char *buf = NULL; if (message != NULL) { + va_start(args, message); if (vasprintf(&buf, message, args) < 0) { buf = NULL; } + + va_end(args); } - callback(error, command, type, _eglGetThreadLabel(), objectLabel, buf); + callback(error, funcName, type, thr->Label, thr->CurrentObjectLabel, buf); free(buf); } @@ -332,29 +331,3 @@ _eglDebugReportFullv(EGLenum error, const char *command, const char *funcName, _eglInternalError(error, funcName); } } - -void -_eglDebugReportFull(EGLenum error, const char *command, const char *funcName, - EGLint type, EGLLabelKHR objectLabel, const char *message, ...) -{ - va_list args; - va_start(args, message); - _eglDebugReportFullv(error, command, funcName, type, objectLabel, message, args); - va_end(args); -} - -void -_eglDebugReport(EGLenum error, const char *funcName, - EGLint type, const char *message, ...) -{ - _EGLThreadInfo *thr = _eglGetCurrentThread(); - va_list args; - - if (funcName == NULL) { - funcName = thr->CurrentFuncName; - } - - va_start(args, message); - _eglDebugReportFullv(error, thr->CurrentFuncName, funcName, type, thr->CurrentObjectLabel, message, args); - va_end(args); -} diff --git a/src/egl/main/eglcurrent.h b/src/egl/main/eglcurrent.h index 9ec07ba..d9a4a90 100644 --- a/src/egl/main/eglcurrent.h +++ b/src/egl/main/eglcurrent.h @@ -99,13 +99,6 @@ _eglGetCurrentContext(void); extern EGLBoolean _eglError(EGLint errCode, const char *msg); -extern EGLLabelKHR -_eglGetThreadLabel(void); - -extern void -_eglDebugReportFull(EGLenum error, const char *command, const char *funcName, - EGLint type, EGLLabelKHR objectLabel, const char *message, ...); - extern void _eglDebugReport(EGLenum error, const char *funcName, EGLint type, const char *message, ...); -- 2.7.4