glx: Use __glXSendError instead of open-coding it

This also fixes a bug, the error path through MakeCurrent didn't
translate the error code by the extension's error base.

Signed-off-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Adam Jackson
2017-11-14 15:13:02 -05:00
parent bcb15bee52
commit 75d5d22fb7
2 changed files with 4 additions and 26 deletions

View File

@@ -392,15 +392,7 @@ glXCreateContext(Display * dpy, XVisualInfo * vis,
config = glx_config_find_visual(psc->visuals, vis->visualid);
if (config == NULL) {
xError error;
error.errorCode = BadValue;
error.resourceID = vis->visualid;
error.sequenceNumber = dpy->request;
error.type = X_Error;
error.majorCode = __glXSetupForCommand(dpy);
error.minorCode = X_GLXCreateContext;
_XError(dpy, &error);
__glXSendError(dpy, BadValue, vis->visualid, X_GLXCreateContext, True);
return None;
}

View File

@@ -36,8 +36,8 @@
#include <pthread.h>
#include "glxclient.h"
#include "glapi.h"
#include "glx_error.h"
/*
** We setup some dummy structures here so that the API can be used
@@ -165,21 +165,6 @@ glXGetCurrentDrawable(void)
return gc->currentDrawable;
}
static void
__glXGenerateError(Display * dpy, XID resource,
BYTE errorCode, CARD16 minorCode)
{
xError error;
error.errorCode = errorCode;
error.resourceID = resource;
error.sequenceNumber = dpy->request;
error.type = X_Error;
error.majorCode = __glXSetupForCommand(dpy);
error.minorCode = minorCode;
_XError(dpy, &error);
}
/**
* Make a particular context current.
*
@@ -228,7 +213,8 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
if (gc->vtable->bind(gc, oldGC, draw, read) != Success) {
__glXSetCurrentContextNull();
__glXUnlock();
__glXGenerateError(dpy, None, GLXBadContext, X_GLXMakeContextCurrent);
__glXSendError(dpy, GLXBadContext, None, X_GLXMakeContextCurrent,
False);
return GL_FALSE;
}