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 <kbrenneman@nvidia.com>
Cc: Adam Jackson <ajax@redhat.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> (IRC)
This commit is contained in:
Emil Velikov
2017-09-07 17:03:50 +01:00
committed by Emil Velikov
parent 5af2673479
commit b94344f1c7
3 changed files with 14 additions and 49 deletions

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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, ...);