1
0
xorg-x11-server/xorg-server-xf4vnc-TranslateNone.diff

28 lines
1.1 KiB
Diff
Raw Normal View History

Index: xorg-server-1.6.3.901/hw/vnc/translate.c
================================================================================
--- xorg-server-1.7.99/hw/vnc/translate.c
+++ xorg-server-1.7.99/hw/vnc/translate.c
@@ -168,17 +168,17 @@
{
VNCSCREENPTR(pScreen);
DrawablePtr pDraw = (DrawablePtr)WindowTable[pScreen->myNum];
- int truewidth = PixmapBytePad(width, in->bitsPerPixel) / 4;
+ int truewidth = PixmapBytePad(width, in->bitsPerPixel);
- if ((x + truewidth > pVNC->width) || truewidth != width) {
- unsigned char *buffer = malloc(truewidth * height * in->bitsPerPixel / 8);
+ if ((x + width > pVNC->width) || truewidth != width * in->bitsPerPixel / 8) {
+ unsigned char *buffer = malloc(truewidth * height);
unsigned char *buf = buffer;
- (*pScreen->GetImage)(pDraw, x, y, truewidth, height, ZPixmap, ~0, (char*)buf);
+ (*pScreen->GetImage)(pDraw, x, y, width, height, ZPixmap, ~0, (char*)buf);
while (height--) {
memcpy(optr, buf, width * in->bitsPerPixel / 8);
optr += width * in->bitsPerPixel / 8;
- buf += truewidth * in->bitsPerPixel / 8;
+ buf += truewidth;
}
free(buffer);
return;