diff options
Diffstat (limited to 'xorg-server/dix/gc.c')
-rw-r--r-- | xorg-server/dix/gc.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/xorg-server/dix/gc.c b/xorg-server/dix/gc.c index 7be050221..ec7e24f13 100644 --- a/xorg-server/dix/gc.c +++ b/xorg-server/dix/gc.c @@ -320,12 +320,30 @@ ChangeGC(ClientPtr client, GC * pGC, BITS32 mask, ChangeGCValPtr pUnion) break; } case GCClipXOrigin: + #ifndef _DEBUG NEXTVAL(INT16, pGC->clipOrg.x); - + #else + { + long Val; + NEXTVAL(long, Val); + if (abs(Val)>65535) + ErrorF("Value received for GCClipXOrigin is too large %x\n",Val); + pGC->clipOrg.x=(INT16)(Val&0xffff); + } + #endif break; case GCClipYOrigin: + #ifndef _DEBUG NEXTVAL(INT16, pGC->clipOrg.y); - + #else + { + long Val; + NEXTVAL(long, Val); + if (abs(Val)>65535) + ErrorF("Value received for GCClipYOrigin is too large %x\n",Val); + pGC->clipOrg.y=(INT16)(Val&0xffff); + } + #endif break; case GCClipMask: NEXT_PTR(PixmapPtr, pPixmap); |