mirror of
https://github.com/X11Libre/xserver.git
synced 2026-03-24 08:04:30 +00:00
hack1
This commit is contained in:
@@ -39,6 +39,7 @@ from Kaleb S. KEITHLEY
|
||||
|
||||
#include "dix/dix_priv.h"
|
||||
#include "dix/rpcbuf_priv.h"
|
||||
#include "dix/screenint_priv.h"
|
||||
#include "os/log_priv.h"
|
||||
#include "os/osdep.h"
|
||||
|
||||
@@ -216,7 +217,6 @@ static int
|
||||
ProcVidModeGetModeLine(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXF86VidModeGetModeLineReq);
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
DisplayModePtr mode;
|
||||
int dotClock;
|
||||
@@ -227,9 +227,10 @@ ProcVidModeGetModeLine(ClientPtr client)
|
||||
ver = ClientMajorVersion(client);
|
||||
REQUEST_SIZE_MATCH(xXF86VidModeGetModeLineReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
return BadImplementation;
|
||||
@@ -341,7 +342,6 @@ static int
|
||||
ProcVidModeGetAllModeLines(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXF86VidModeGetAllModeLinesReq);
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
DisplayModePtr mode;
|
||||
int modecount, dotClock;
|
||||
@@ -351,9 +351,10 @@ ProcVidModeGetAllModeLines(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86VidModeGetAllModeLinesReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
ver = ClientMajorVersion(client);
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -466,7 +467,6 @@ ProcVidModeAddModeLine(ClientPtr client)
|
||||
|
||||
static int VidModeAddModeLine(ClientPtr client, xXF86VidModeAddModeLineReq* stuff)
|
||||
{
|
||||
ScreenPtr pScreen;
|
||||
DisplayModePtr mode;
|
||||
VidModePtr pVidMode;
|
||||
int dotClock;
|
||||
@@ -489,9 +489,9 @@ static int VidModeAddModeLine(ClientPtr client, xXF86VidModeAddModeLineReq* stuf
|
||||
stuff->after_vsyncend, stuff->after_vtotal,
|
||||
(unsigned long) stuff->after_flags);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
if (stuff->hsyncstart < stuff->hdisplay ||
|
||||
stuff->hsyncend < stuff->hsyncstart ||
|
||||
@@ -651,7 +651,6 @@ VidModeDeleteModeLine(ClientPtr client, xXF86VidModeDeleteModeLineReq* stuff)
|
||||
int dotClock;
|
||||
DisplayModePtr mode;
|
||||
VidModePtr pVidMode;
|
||||
ScreenPtr pScreen;
|
||||
|
||||
DebugF("DeleteModeLine - scrn: %d clock: %ld\n",
|
||||
(int) stuff->screen, (unsigned long) stuff->dotclock);
|
||||
@@ -662,9 +661,9 @@ VidModeDeleteModeLine(ClientPtr client, xXF86VidModeDeleteModeLineReq* stuff)
|
||||
stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
|
||||
(unsigned long) stuff->flags);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -774,7 +773,6 @@ ProcVidModeModModeLine(ClientPtr client)
|
||||
static int
|
||||
VidModeModModeLine(ClientPtr client, xXF86VidModeModModeLineReq *stuff)
|
||||
{
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
DisplayModePtr mode;
|
||||
int dotClock;
|
||||
@@ -793,9 +791,9 @@ VidModeModModeLine(ClientPtr client, xXF86VidModeModModeLineReq *stuff)
|
||||
stuff->vsyncend < stuff->vsyncstart || stuff->vtotal < stuff->vsyncend)
|
||||
return BadValue;
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -917,7 +915,6 @@ ProcVidModeValidateModeLine(ClientPtr client)
|
||||
static int
|
||||
VidModeValidateModeLine(ClientPtr client, xXF86VidModeValidateModeLineReq *stuff)
|
||||
{
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
DisplayModePtr mode, modetmp = NULL;
|
||||
int status, dotClock;
|
||||
@@ -931,9 +928,9 @@ VidModeValidateModeLine(ClientPtr client, xXF86VidModeValidateModeLineReq *stuff
|
||||
stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
|
||||
(unsigned long) stuff->flags);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
status = MODE_OK;
|
||||
|
||||
@@ -1000,7 +997,6 @@ static int
|
||||
ProcVidModeSwitchMode(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXF86VidModeSwitchModeReq);
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
|
||||
DEBUG_P("XF86VidModeSwitchMode");
|
||||
@@ -1011,9 +1007,9 @@ ProcVidModeSwitchMode(ClientPtr client)
|
||||
if (!VidModeAllowNonLocal && !client->local)
|
||||
return VidModeErrorBase + XF86VidModeClientNotLocal;
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -1080,7 +1076,6 @@ ProcVidModeSwitchToMode(ClientPtr client)
|
||||
static int
|
||||
VidModeSwitchToMode(ClientPtr client, xXF86VidModeSwitchToModeReq *stuff)
|
||||
{
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
DisplayModePtr mode;
|
||||
int dotClock;
|
||||
@@ -1094,9 +1089,9 @@ VidModeSwitchToMode(ClientPtr client, xXF86VidModeSwitchToModeReq *stuff)
|
||||
stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
|
||||
(unsigned long) stuff->flags);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -1145,7 +1140,6 @@ static int
|
||||
ProcVidModeLockModeSwitch(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXF86VidModeLockModeSwitchReq);
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86VidModeLockModeSwitchReq);
|
||||
@@ -1156,9 +1150,9 @@ ProcVidModeLockModeSwitch(ClientPtr client)
|
||||
if (!VidModeAllowNonLocal && !client->local)
|
||||
return VidModeErrorBase + XF86VidModeClientNotLocal;
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -1187,9 +1181,9 @@ ProcVidModeGetMonitor(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86VidModeGetMonitorReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
ScreenPtr pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
VidModePtr pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -1238,7 +1232,6 @@ static int
|
||||
ProcVidModeGetViewPort(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXF86VidModeGetViewPortReq);
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
int x, y;
|
||||
|
||||
@@ -1246,9 +1239,9 @@ ProcVidModeGetViewPort(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86VidModeGetViewPortReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -1273,7 +1266,6 @@ static int
|
||||
ProcVidModeSetViewPort(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXF86VidModeSetViewPortReq);
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
|
||||
DEBUG_P("XF86VidModeSetViewPort");
|
||||
@@ -1284,9 +1276,9 @@ ProcVidModeSetViewPort(ClientPtr client)
|
||||
if (!VidModeAllowNonLocal && !client->local)
|
||||
return VidModeErrorBase + XF86VidModeClientNotLocal;
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -1302,7 +1294,6 @@ static int
|
||||
ProcVidModeGetDotClocks(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXF86VidModeGetDotClocksReq);
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
int numClocks;
|
||||
Bool ClockProg;
|
||||
@@ -1311,9 +1302,9 @@ ProcVidModeGetDotClocks(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86VidModeGetDotClocksReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -1361,7 +1352,6 @@ static int
|
||||
ProcVidModeSetGamma(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXF86VidModeSetGammaReq);
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
|
||||
DEBUG_P("XF86VidModeSetGamma");
|
||||
@@ -1372,9 +1362,9 @@ ProcVidModeSetGamma(ClientPtr client)
|
||||
if (!VidModeAllowNonLocal && !client->local)
|
||||
return VidModeErrorBase + XF86VidModeClientNotLocal;
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -1392,7 +1382,6 @@ static int
|
||||
ProcVidModeGetGamma(ClientPtr client)
|
||||
{
|
||||
REQUEST(xXF86VidModeGetGammaReq);
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
float red, green, blue;
|
||||
|
||||
@@ -1400,9 +1389,9 @@ ProcVidModeGetGamma(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86VidModeGetGammaReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -1430,7 +1419,6 @@ ProcVidModeSetGammaRamp(ClientPtr client)
|
||||
{
|
||||
CARD16 *r, *g, *b;
|
||||
int length;
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
|
||||
/* limited to local-only connections */
|
||||
@@ -1440,9 +1428,9 @@ ProcVidModeSetGammaRamp(ClientPtr client)
|
||||
REQUEST(xXF86VidModeSetGammaRampReq);
|
||||
REQUEST_AT_LEAST_SIZE(xXF86VidModeSetGammaRampReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -1471,9 +1459,9 @@ ProcVidModeGetGammaRamp(ClientPtr client)
|
||||
REQUEST(xXF86VidModeGetGammaRampReq);
|
||||
REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
ScreenPtr pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
VidModePtr pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -1517,16 +1505,15 @@ ProcVidModeGetGammaRamp(ClientPtr client)
|
||||
static int
|
||||
ProcVidModeGetGammaRampSize(ClientPtr client)
|
||||
{
|
||||
ScreenPtr pScreen;
|
||||
VidModePtr pVidMode;
|
||||
|
||||
REQUEST(xXF86VidModeGetGammaRampSizeReq);
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampSizeReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
pScreen = screenInfo.screens[stuff->screen];
|
||||
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
if (pVidMode == NULL)
|
||||
@@ -1548,7 +1535,8 @@ ProcVidModeGetPermissions(ClientPtr client)
|
||||
REQUEST(xXF86VidModeGetPermissionsReq);
|
||||
REQUEST_SIZE_MATCH(xXF86VidModeGetPermissionsReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
xXF86VidModeGetPermissionsReply rep = {
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <X11/Xdefs.h>
|
||||
|
||||
#include "screenint.h"
|
||||
#include "include/scrnintstr.h"
|
||||
|
||||
typedef Bool (*ScreenInitProcPtr)(ScreenPtr pScreen, int argc, char **argv);
|
||||
|
||||
@@ -23,4 +24,11 @@ void DetachUnboundGPU(ScreenPtr unbound);
|
||||
void AttachOffloadGPU(ScreenPtr pScreen, ScreenPtr newScreen);
|
||||
void DetachOffloadGPU(ScreenPtr slave);
|
||||
|
||||
static inline ScreenPtr GetScreenPtr(unsigned int id)
|
||||
{
|
||||
if (id < screenInfo.numScreens)
|
||||
return screenInfo.screens[id];
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif /* _XSERVER_DIX_SCREENINT_PRIV_H */
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include <dix-config.h>
|
||||
|
||||
#include "dix/dix_priv.h"
|
||||
#include "dix/screenint_priv.h"
|
||||
|
||||
#include <dix.h>
|
||||
#include "vndserver.h"
|
||||
@@ -11,6 +12,69 @@
|
||||
#define X_GLXCreateContextAttribsARB X_GLXCreateContextAtrribsARB
|
||||
#endif
|
||||
|
||||
static GlxServerVendor *vendorForScreen(
|
||||
ClientPtr pClient,
|
||||
CARD32 raw_screen)
|
||||
{
|
||||
CARD32 screenId = GlxCheckSwap(pClient, raw_screen);
|
||||
ScreenPtr pScreen = GetScreenPtr(screenId);
|
||||
if (!pScreen) {
|
||||
pClient->errorValue = screenId;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return glxServer.getVendorForScreen(pClient, pScreen);
|
||||
}
|
||||
|
||||
static GlxServerVendor *vendorForTag(
|
||||
ClientPtr pClient,
|
||||
CARD32 raw_context)
|
||||
{
|
||||
CARD32 contextTag = GlxCheckSwap(client, raw_context);
|
||||
GlxServerVendor *vendor = glxServer.getContextTag(client, contextTag);
|
||||
if (!vendor) {
|
||||
client->errorValue = contextTag;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return vendor;
|
||||
}
|
||||
|
||||
static int forward_simple(ClientPtr pClient, CARD32 raw_screen)
|
||||
{
|
||||
GlxServerVendor *vendor = vendorForScreen(pClient, raw_screen);
|
||||
if (!vendor)
|
||||
return BadMatch;
|
||||
|
||||
return glxServer.forwardRequest(vendor, pClient);
|
||||
}
|
||||
|
||||
static int forward_xidmap(ClientPtr pClient, CARD32 raw_screen, XID xid)
|
||||
{
|
||||
GlxServerVendor *vendor = vendorForScreen(pClient, raw_screen);
|
||||
if (!vendor)
|
||||
return BadMatch;
|
||||
|
||||
if (!glxServer.addXIDMap(xid, vendor)) {
|
||||
return BadAlloc;
|
||||
}
|
||||
|
||||
int ret = glxServer.forwardRequest(vendor, pClient);
|
||||
if (ret != Success) {
|
||||
glxServer.removeXIDMap(xid);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int forward_create(ClientPtr pClient, CARD32 raw_screen, XID raw_xid)
|
||||
{
|
||||
XID xid = GlxCheckSwap(pClient, raw_xid);
|
||||
LEGAL_NEW_RESOURCE(xid, pClient);
|
||||
|
||||
return forward_xidmap(pClient, raw_screen, xid);
|
||||
}
|
||||
|
||||
static int dispatch_Render(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXRenderReq);
|
||||
@@ -18,7 +82,8 @@ static int dispatch_Render(ClientPtr client)
|
||||
GlxServerVendor *vendor = NULL;
|
||||
REQUEST_AT_LEAST_SIZE(*stuff);
|
||||
contextTag = GlxCheckSwap(client, stuff->contextTag);
|
||||
vendor = glxServer.getContextTag(client, contextTag);
|
||||
|
||||
GlxServerVendor *vendor = glxServer.getContextTag(client, stuff->contextTag);
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
@@ -28,6 +93,7 @@ static int dispatch_Render(ClientPtr client)
|
||||
return GlxErrorBase + GLXBadContextTag;
|
||||
}
|
||||
}
|
||||
|
||||
static int dispatch_RenderLarge(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXRenderLargeReq);
|
||||
@@ -45,33 +111,15 @@ static int dispatch_RenderLarge(ClientPtr client)
|
||||
return GlxErrorBase + GLXBadContextTag;
|
||||
}
|
||||
}
|
||||
|
||||
static int dispatch_CreateContext(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXCreateContextReq);
|
||||
CARD32 screen, context;
|
||||
GlxServerVendor *vendor = NULL;
|
||||
REQUEST_SIZE_MATCH(*stuff);
|
||||
screen = GlxCheckSwap(client, stuff->screen);
|
||||
context = GlxCheckSwap(client, stuff->context);
|
||||
LEGAL_NEW_RESOURCE(context, client);
|
||||
if (screen < screenInfo.numScreens) {
|
||||
vendor = glxServer.getVendorForScreen(client, screenInfo.screens[screen]);
|
||||
}
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
if (!glxServer.addXIDMap(context, vendor)) {
|
||||
return BadAlloc;
|
||||
}
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
if (ret != Success) {
|
||||
glxServer.removeXIDMap(context);
|
||||
}
|
||||
return ret;
|
||||
} else {
|
||||
client->errorValue = screen;
|
||||
return BadMatch;
|
||||
}
|
||||
|
||||
return forward_create(client, stuff->screen, stuff->context);
|
||||
}
|
||||
|
||||
static int dispatch_DestroyContext(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXDestroyContextReq);
|
||||
@@ -80,6 +128,7 @@ static int dispatch_DestroyContext(ClientPtr client)
|
||||
REQUEST_SIZE_MATCH(*stuff);
|
||||
context = GlxCheckSwap(client, stuff->context);
|
||||
vendor = glxServer.getXIDMap(context);
|
||||
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
@@ -146,49 +195,19 @@ static int dispatch_UseXFont(ClientPtr client)
|
||||
static int dispatch_CreateGLXPixmap(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXCreateGLXPixmapReq);
|
||||
CARD32 screen, glxpixmap;
|
||||
GlxServerVendor *vendor = NULL;
|
||||
REQUEST_SIZE_MATCH(*stuff);
|
||||
screen = GlxCheckSwap(client, stuff->screen);
|
||||
glxpixmap = GlxCheckSwap(client, stuff->glxpixmap);
|
||||
LEGAL_NEW_RESOURCE(glxpixmap, client);
|
||||
if (screen < screenInfo.numScreens) {
|
||||
vendor = glxServer.getVendorForScreen(client, screenInfo.screens[screen]);
|
||||
}
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
if (!glxServer.addXIDMap(glxpixmap, vendor)) {
|
||||
return BadAlloc;
|
||||
}
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
if (ret != Success) {
|
||||
glxServer.removeXIDMap(glxpixmap);
|
||||
}
|
||||
return ret;
|
||||
} else {
|
||||
client->errorValue = screen;
|
||||
return BadMatch;
|
||||
}
|
||||
|
||||
return forward_xidmap(client, stuff->screen, stuff->glxpixmap);
|
||||
}
|
||||
|
||||
static int dispatch_GetVisualConfigs(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXGetVisualConfigsReq);
|
||||
CARD32 screen;
|
||||
GlxServerVendor *vendor = NULL;
|
||||
REQUEST_SIZE_MATCH(*stuff);
|
||||
screen = GlxCheckSwap(client, stuff->screen);
|
||||
if (screen < screenInfo.numScreens) {
|
||||
vendor = glxServer.getVendorForScreen(client, screenInfo.screens[screen]);
|
||||
}
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
return ret;
|
||||
} else {
|
||||
client->errorValue = screen;
|
||||
return BadMatch;
|
||||
}
|
||||
|
||||
return forward_simple(client, stuff->screen);
|
||||
}
|
||||
|
||||
static int dispatch_DestroyGLXPixmap(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXDestroyGLXPixmapReq);
|
||||
@@ -206,44 +225,23 @@ static int dispatch_DestroyGLXPixmap(ClientPtr client)
|
||||
return GlxErrorBase + GLXBadPixmap;
|
||||
}
|
||||
}
|
||||
|
||||
static int dispatch_QueryExtensionsString(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXQueryExtensionsStringReq);
|
||||
CARD32 screen;
|
||||
GlxServerVendor *vendor = NULL;
|
||||
REQUEST_SIZE_MATCH(*stuff);
|
||||
screen = GlxCheckSwap(client, stuff->screen);
|
||||
if (screen < screenInfo.numScreens) {
|
||||
vendor = glxServer.getVendorForScreen(client, screenInfo.screens[screen]);
|
||||
}
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
return ret;
|
||||
} else {
|
||||
client->errorValue = screen;
|
||||
return BadMatch;
|
||||
}
|
||||
|
||||
return forward_simple(client, stuff->screen);
|
||||
}
|
||||
|
||||
static int dispatch_QueryServerString(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXQueryServerStringReq);
|
||||
CARD32 screen;
|
||||
GlxServerVendor *vendor = NULL;
|
||||
REQUEST_SIZE_MATCH(*stuff);
|
||||
screen = GlxCheckSwap(client, stuff->screen);
|
||||
if (screen < screenInfo.numScreens) {
|
||||
vendor = glxServer.getVendorForScreen(client, screenInfo.screens[screen]);
|
||||
}
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
return ret;
|
||||
} else {
|
||||
client->errorValue = screen;
|
||||
return BadMatch;
|
||||
}
|
||||
|
||||
return forward_simple(client, stuff->screen);
|
||||
}
|
||||
|
||||
static int dispatch_ChangeDrawableAttributes(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXChangeDrawableAttributesReq);
|
||||
@@ -264,138 +262,43 @@ static int dispatch_ChangeDrawableAttributes(ClientPtr client)
|
||||
static int dispatch_CreateNewContext(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXCreateNewContextReq);
|
||||
CARD32 screen, context;
|
||||
GlxServerVendor *vendor = NULL;
|
||||
REQUEST_SIZE_MATCH(*stuff);
|
||||
screen = GlxCheckSwap(client, stuff->screen);
|
||||
context = GlxCheckSwap(client, stuff->context);
|
||||
LEGAL_NEW_RESOURCE(context, client);
|
||||
if (screen < screenInfo.numScreens) {
|
||||
vendor = glxServer.getVendorForScreen(client, screenInfo.screens[screen]);
|
||||
}
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
if (!glxServer.addXIDMap(context, vendor)) {
|
||||
return BadAlloc;
|
||||
}
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
if (ret != Success) {
|
||||
glxServer.removeXIDMap(context);
|
||||
}
|
||||
return ret;
|
||||
} else {
|
||||
client->errorValue = screen;
|
||||
return BadMatch;
|
||||
}
|
||||
|
||||
return forward_xidmap(client, stuff->screen, stuff->context);
|
||||
}
|
||||
|
||||
static int dispatch_CreatePbuffer(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXCreatePbufferReq);
|
||||
CARD32 screen, pbuffer;
|
||||
GlxServerVendor *vendor = NULL;
|
||||
REQUEST_AT_LEAST_SIZE(*stuff);
|
||||
screen = GlxCheckSwap(client, stuff->screen);
|
||||
pbuffer = GlxCheckSwap(client, stuff->pbuffer);
|
||||
LEGAL_NEW_RESOURCE(pbuffer, client);
|
||||
if (screen < screenInfo.numScreens) {
|
||||
vendor = glxServer.getVendorForScreen(client, screenInfo.screens[screen]);
|
||||
}
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
if (!glxServer.addXIDMap(pbuffer, vendor)) {
|
||||
return BadAlloc;
|
||||
}
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
if (ret != Success) {
|
||||
glxServer.removeXIDMap(pbuffer);
|
||||
}
|
||||
return ret;
|
||||
} else {
|
||||
client->errorValue = screen;
|
||||
return BadMatch;
|
||||
}
|
||||
|
||||
return forward_xidmap(client, stuff->screen, stuff->pbuffer);
|
||||
}
|
||||
|
||||
static int dispatch_CreatePixmap(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXCreatePixmapReq);
|
||||
CARD32 screen, glxpixmap;
|
||||
GlxServerVendor *vendor = NULL;
|
||||
REQUEST_AT_LEAST_SIZE(*stuff);
|
||||
screen = GlxCheckSwap(client, stuff->screen);
|
||||
glxpixmap = GlxCheckSwap(client, stuff->glxpixmap);
|
||||
LEGAL_NEW_RESOURCE(glxpixmap, client);
|
||||
if (screen < screenInfo.numScreens) {
|
||||
vendor = glxServer.getVendorForScreen(client, screenInfo.screens[screen]);
|
||||
}
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
if (!glxServer.addXIDMap(glxpixmap, vendor)) {
|
||||
return BadAlloc;
|
||||
}
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
if (ret != Success) {
|
||||
glxServer.removeXIDMap(glxpixmap);
|
||||
}
|
||||
return ret;
|
||||
} else {
|
||||
client->errorValue = screen;
|
||||
return BadMatch;
|
||||
}
|
||||
|
||||
return forward_xidmap(client, stuff->screen, stuff->glxpixmap);
|
||||
}
|
||||
|
||||
static int dispatch_CreateWindow(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXCreateWindowReq);
|
||||
CARD32 screen, glxwindow;
|
||||
GlxServerVendor *vendor = NULL;
|
||||
REQUEST_AT_LEAST_SIZE(*stuff);
|
||||
screen = GlxCheckSwap(client, stuff->screen);
|
||||
glxwindow = GlxCheckSwap(client, stuff->glxwindow);
|
||||
LEGAL_NEW_RESOURCE(glxwindow, client);
|
||||
if (screen < screenInfo.numScreens) {
|
||||
vendor = glxServer.getVendorForScreen(client, screenInfo.screens[screen]);
|
||||
}
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
if (!glxServer.addXIDMap(glxwindow, vendor)) {
|
||||
return BadAlloc;
|
||||
}
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
if (ret != Success) {
|
||||
glxServer.removeXIDMap(glxwindow);
|
||||
}
|
||||
return ret;
|
||||
} else {
|
||||
client->errorValue = screen;
|
||||
return BadMatch;
|
||||
}
|
||||
|
||||
return forward_xidmap(client, stuff->screen, stuff->glxwindow);
|
||||
}
|
||||
|
||||
static int dispatch_CreateContextAttribsARB(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXCreateContextAttribsARBReq);
|
||||
CARD32 screen, context;
|
||||
GlxServerVendor *vendor = NULL;
|
||||
REQUEST_AT_LEAST_SIZE(*stuff);
|
||||
screen = GlxCheckSwap(client, stuff->screen);
|
||||
context = GlxCheckSwap(client, stuff->context);
|
||||
LEGAL_NEW_RESOURCE(context, client);
|
||||
if (screen < screenInfo.numScreens) {
|
||||
vendor = glxServer.getVendorForScreen(client, screenInfo.screens[screen]);
|
||||
}
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
if (!glxServer.addXIDMap(context, vendor)) {
|
||||
return BadAlloc;
|
||||
}
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
if (ret != Success) {
|
||||
glxServer.removeXIDMap(context);
|
||||
}
|
||||
return ret;
|
||||
} else {
|
||||
client->errorValue = screen;
|
||||
return BadMatch;
|
||||
}
|
||||
|
||||
return forward_xidmap(client, stuff->screen, stuff->context);
|
||||
}
|
||||
|
||||
static int dispatch_DestroyPbuffer(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXDestroyPbufferReq);
|
||||
@@ -476,22 +379,11 @@ static int dispatch_GetDrawableAttributes(ClientPtr client)
|
||||
static int dispatch_GetFBConfigs(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXGetFBConfigsReq);
|
||||
CARD32 screen;
|
||||
GlxServerVendor *vendor = NULL;
|
||||
REQUEST_SIZE_MATCH(*stuff);
|
||||
screen = GlxCheckSwap(client, stuff->screen);
|
||||
if (screen < screenInfo.numScreens) {
|
||||
vendor = glxServer.getVendorForScreen(client, screenInfo.screens[screen]);
|
||||
}
|
||||
if (vendor != NULL) {
|
||||
int ret;
|
||||
ret = glxServer.forwardRequest(vendor, client);
|
||||
return ret;
|
||||
} else {
|
||||
client->errorValue = screen;
|
||||
return BadMatch;
|
||||
}
|
||||
|
||||
return forward_simple(client, stuff->screen);
|
||||
}
|
||||
|
||||
static int dispatch_QueryContext(ClientPtr client)
|
||||
{
|
||||
REQUEST(xGLXQueryContextReq);
|
||||
|
||||
@@ -1242,7 +1242,8 @@ ProcXDGAOpenFramebuffer(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGAOpenFramebufferReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (!DGAAvailable(stuff->screen))
|
||||
@@ -1276,7 +1277,8 @@ ProcXDGACloseFramebuffer(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGACloseFramebufferReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (!DGAAvailable(stuff->screen))
|
||||
@@ -1299,7 +1301,8 @@ ProcXDGAQueryModes(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGAQueryModesReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
rep.type = X_Reply;
|
||||
@@ -1415,7 +1418,8 @@ ProcXDGASetMode(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGASetModeReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
owner = DGA_GETCLIENT(stuff->screen);
|
||||
|
||||
@@ -1506,7 +1510,8 @@ ProcXDGASetViewport(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGASetViewportReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
@@ -1527,7 +1532,8 @@ ProcXDGAInstallColormap(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGAInstallColormapReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
@@ -1548,7 +1554,8 @@ ProcXDGASelectInput(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGASelectInputReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
@@ -1567,7 +1574,8 @@ ProcXDGAFillRectangle(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGAFillRectangleReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
@@ -1587,7 +1595,8 @@ ProcXDGACopyArea(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGACopyAreaReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
@@ -1608,7 +1617,8 @@ ProcXDGACopyTransparentArea(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGACopyTransparentAreaReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
@@ -1630,7 +1640,8 @@ ProcXDGAGetViewportStatus(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGAGetViewportStatusReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
@@ -1654,7 +1665,8 @@ ProcXDGASync(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGASyncReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
@@ -1700,7 +1712,8 @@ ProcXDGAChangePixmapMode(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGAChangePixmapModeReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
@@ -1731,7 +1744,8 @@ ProcXDGACreateColormap(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGACreateColormapReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
@@ -1767,7 +1781,8 @@ ProcXF86DGAGetVideoLL(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGAGetVideoLLReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
rep.type = X_Reply;
|
||||
@@ -1808,7 +1823,8 @@ ProcXF86DGADirectVideo(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGADirectVideoReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (!DGAAvailable(stuff->screen))
|
||||
@@ -1867,7 +1883,8 @@ ProcXF86DGAGetViewPortSize(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGAGetViewPortSizeReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
rep.type = X_Reply;
|
||||
@@ -1896,7 +1913,8 @@ ProcXF86DGASetViewPort(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGASetViewPortReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
@@ -1923,7 +1941,8 @@ ProcXF86DGAGetVidPage(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGAGetVidPageReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
rep.type = X_Reply;
|
||||
@@ -1942,7 +1961,8 @@ ProcXF86DGASetVidPage(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGASetVidPageReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
/* silently fail */
|
||||
@@ -1960,7 +1980,8 @@ ProcXF86DGAInstallColormap(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGAInstallColormapReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
@@ -1988,7 +2009,8 @@ ProcXF86DGAQueryDirectVideo(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGAQueryDirectVideoReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
rep.type = X_Reply;
|
||||
@@ -2011,7 +2033,8 @@ ProcXF86DGAViewPortChanged(ClientPtr client)
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGAViewPortChangedReq);
|
||||
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
ScreenPtr pScreen = GetScreenPtr(stuff->screen);
|
||||
if (!pScreen)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
||||
Reference in New Issue
Block a user