- Merge xorg-server-xf4vnc-fix-crash-on-193.diff

into xorg-server-xf4vnc-fixes_1_9.diff
- Fix last commit

OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=330
This commit is contained in:
Matthias Hopf 2011-02-11 17:21:41 +00:00 committed by Git OBS Bridge
parent 26f4a1f267
commit 35b4ea8794
4 changed files with 155 additions and 181 deletions

View File

@ -1,110 +0,0 @@
diff -urp xorg-server-1.9.3.orig//hw/vnc/dispcur.c xorg-server-1.9.3/hw/vnc/dispcur.c
--- xorg-server-1.9.3.orig//hw/vnc/dispcur.c 2010-12-21 16:51:38.000000000 +0100
+++ xorg-server-1.9.3/hw/vnc/dispcur.c 2010-12-21 18:23:02.000000000 +0100
@@ -74,10 +74,10 @@ in this Software without prior written a
/* per-screen private data */
-static int rfbDCScreenKeyStore;
-static DevPrivateKey rfbDCScreenKey = &rfbDCScreenKeyStore;
-static int rfbScreenKeyStore;
-static DevPrivateKey rfbScreenKey = &rfbScreenKeyStore;
+static DevPrivateKeyRec rfbDCScreenKeyRec;
+#define rfbDCScreenKey (&rfbDCScreenKeyRec)
+static DevPrivateKeyRec rfbScreenKeyRec;
+#define rfbScreenKey (&rfbScreenKeyRec)
static Bool rfbDCCloseScreen(int index, ScreenPtr pScreen);
@@ -137,6 +137,12 @@ rfbDCInitialize (ScreenPtr pScreen, miPo
{
rfbDCScreenPtr pScreenPriv;
+ if (!dixRegisterPrivateKey(rfbDCScreenKey, PRIVATE_SCREEN, 0))
+ return FALSE;
+
+ if (!dixRegisterPrivateKey(rfbScreenKey, PRIVATE_CURSOR_BITS, 0))
+ return FALSE;
+
pScreenPriv = (rfbDCScreenPtr) xalloc (sizeof (rfbDCScreenRec));
if (!pScreenPriv)
return FALSE;
diff -urp xorg-server-1.9.3.orig//hw/vnc/draw.c xorg-server-1.9.3/hw/vnc/draw.c
--- xorg-server-1.9.3.orig//hw/vnc/draw.c 2010-12-21 16:51:38.000000000 +0100
+++ xorg-server-1.9.3/hw/vnc/draw.c 2010-12-21 18:30:00.000000000 +0100
@@ -61,6 +61,10 @@ in this Software without prior written a
int rfbDeferUpdateTime = 40; /* ms */
+extern DevPrivateKeyRec rfbGCKeyRec;
+#define rfbGCKey (&rfbGCKeyRec)
+
+
/****************************************************************************/
/*
diff -urp xorg-server-1.9.3.orig//hw/vnc/sprite.c xorg-server-1.9.3/hw/vnc/sprite.c
--- xorg-server-1.9.3.orig//hw/vnc/sprite.c 2010-12-21 16:51:38.000000000 +0100
+++ xorg-server-1.9.3/hw/vnc/sprite.c 2010-12-21 18:21:32.000000000 +0100
@@ -114,8 +114,9 @@ static void rfbSpriteSaveDoomedAreas
static RegionPtr rfbSpriteRestoreAreas(WindowPtr pWin, RegionPtr pRgnExposed);
static void rfbSpriteComputeSaved(ScreenPtr pScreen);
-static int rfbSpriteScreenKeyStore;
-static DevPrivateKey rfbSpriteScreenKey = &rfbSpriteScreenKeyStore;
+static DevPrivateKeyRec rfbSpriteScreenKeyRec;
+#define rfbSpriteScreenKey (&rfbSpriteScreenKeyRec)
+
#define SCREEN_PROLOGUE(pScreen, field) ((pScreen)->field = \
((rfbSpriteScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, \
@@ -147,8 +148,8 @@ static GCFuncs rfbSpriteGCFuncs = {
rfbSpriteCopyClip,
};
-static int rfbSpriteGCKeyStore;
-static DevPrivateKey rfbSpriteGCKey = &rfbSpriteGCKeyStore;
+static DevPrivateKeyRec rfbSpriteGCKeyRec;
+#define rfbSpriteGCKey (&rfbSpriteGCKeyRec)
#define GC_FUNC_PROLOGUE(pGC) \
rfbSpriteGCPtr pGCPriv = \
@@ -331,6 +332,9 @@ rfbSpriteInitialize (pScreen, cursorFunc
rfbSpriteScreenPtr pPriv;
VisualPtr pVisual;
+ if (!dixRegisterPrivateKey(rfbSpriteScreenKey, PRIVATE_SCREEN, 0))
+ return FALSE;
+
if (!dixRegisterPrivateKey(rfbSpriteGCKey, PRIVATE_CLIENT, sizeof(rfbSpriteGCRec)))
return FALSE;
diff -urp xorg-server-1.9.3.orig//hw/vnc/vncext.c xorg-server-1.9.3/hw/vnc/vncext.c
--- xorg-server-1.9.3.orig//hw/vnc/vncext.c 2010-12-21 16:51:38.000000000 +0100
+++ xorg-server-1.9.3/hw/vnc/vncext.c 2010-12-21 18:29:54.000000000 +0100
@@ -36,9 +36,10 @@
#include <arpa/inet.h>
#include <netdb.h>
-static int vncCreateScreenResourcesKeyStore, rfbGCKeyStore;
-DevPrivateKey vncCreateScreenResourcesKey = &vncCreateScreenResourcesKeyStore;
-DevPrivateKey rfbGCKey = &rfbGCKeyStore;
+static DevPrivateKeyRec vncCreateScreenResourcesKeyRec;
+#define vncCreateScreenResourcesKey (&vncCreateScreenResourcesKeyRec)
+DevPrivateKeyRec rfbGCKeyRec;
+#define rfbGCKey (&rfbGCKeyRec)
int VncSelectNotify(ClientPtr client, BOOL onoff);
void VncExtensionInit(void);
@@ -762,7 +763,11 @@ VncExtensionInit(void)
vncExtGeneration = serverGeneration;
+ // doesn't seem to be valid any more - mhopf 21.12.2010
// no allocation needed for screen privates
+ if (!dixRegisterPrivateKey(vncCreateScreenResourcesKey, PRIVATE_SCREEN, 0))
+ return;
+
if (!dixRegisterPrivateKey(rfbGCKey, PRIVATE_CLIENT, sizeof(rfbGCRec)))
return;

View File

@ -1,7 +1,7 @@
Index: xorg-server-1.9.2/hw/vnc/rfb.h Index: xorg-server-1.9.3/hw/vnc/rfb.h
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/rfb.h --- xorg-server-1.9.3.orig/hw/vnc/rfb.h
+++ xorg-server-1.9.2/hw/vnc/rfb.h +++ xorg-server-1.9.3/hw/vnc/rfb.h
@@ -189,8 +189,8 @@ typedef struct @@ -189,8 +189,8 @@ typedef struct
CloseScreenProcPtr CloseScreen; CloseScreenProcPtr CloseScreen;
@ -13,11 +13,22 @@ Index: xorg-server-1.9.2/hw/vnc/rfb.h
CopyWindowProcPtr CopyWindow; CopyWindowProcPtr CopyWindow;
ClearToBackgroundProcPtr ClearToBackground; ClearToBackgroundProcPtr ClearToBackground;
RestoreAreasProcPtr RestoreAreas; RestoreAreasProcPtr RestoreAreas;
Index: xorg-server-1.9.2/hw/vnc/draw.c Index: xorg-server-1.9.3/hw/vnc/draw.c
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/draw.c --- xorg-server-1.9.3.orig/hw/vnc/draw.c
+++ xorg-server-1.9.2/hw/vnc/draw.c +++ xorg-server-1.9.3/hw/vnc/draw.c
@@ -217,8 +217,8 @@ rfbCloseScreen (int i, ScreenPtr pScreen @@ -61,6 +61,10 @@ in this Software without prior written a
int rfbDeferUpdateTime = 40; /* ms */
+extern DevPrivateKeyRec rfbGCKeyRec;
+#define rfbGCKey (&rfbGCKeyRec)
+
+
/****************************************************************************/
/*
@@ -217,8 +221,8 @@ rfbCloseScreen (int i, ScreenPtr pScreen
pScreen->CloseScreen = pVNC->CloseScreen; pScreen->CloseScreen = pVNC->CloseScreen;
pScreen->CreateGC = pVNC->CreateGC; pScreen->CreateGC = pVNC->CreateGC;
@ -28,7 +39,7 @@ Index: xorg-server-1.9.2/hw/vnc/draw.c
pScreen->CopyWindow = pVNC->CopyWindow; pScreen->CopyWindow = pVNC->CopyWindow;
pScreen->ClearToBackground = pVNC->ClearToBackground; pScreen->ClearToBackground = pVNC->ClearToBackground;
pScreen->RestoreAreas = pVNC->RestoreAreas; pScreen->RestoreAreas = pVNC->RestoreAreas;
@@ -252,7 +252,7 @@ rfbEnableDisableFBAccess (int index, Boo @@ -252,7 +256,7 @@ rfbEnableDisableFBAccess (int index, Boo
* control even when switched away. * control even when switched away.
*/ */
if (!enable) { if (!enable) {
@ -37,7 +48,7 @@ Index: xorg-server-1.9.2/hw/vnc/draw.c
ScreenPtr pScreen = pWin->drawable.pScreen; ScreenPtr pScreen = pWin->drawable.pScreen;
GCPtr pGC; GCPtr pGC;
xRectangle rect; xRectangle rect;
@@ -268,7 +268,7 @@ rfbEnableDisableFBAccess (int index, Boo @@ -268,7 +272,7 @@ rfbEnableDisableFBAccess (int index, Boo
CARD32 attributes[2]; CARD32 attributes[2];
attributes[0] = pScreen->whitePixel; attributes[0] = pScreen->whitePixel;
attributes[1] = pScreen->blackPixel; attributes[1] = pScreen->blackPixel;
@ -46,7 +57,7 @@ Index: xorg-server-1.9.2/hw/vnc/draw.c
ValidateGC((DrawablePtr)pWin, pGC); ValidateGC((DrawablePtr)pWin, pGC);
@@ -317,6 +317,7 @@ rfbCreateGC (GCPtr pGC) @@ -317,6 +321,7 @@ rfbCreateGC (GCPtr pGC)
return ret; return ret;
} }
@ -54,7 +65,7 @@ Index: xorg-server-1.9.2/hw/vnc/draw.c
/* /*
* PaintWindowBackground - the region being modified is just the given region. * PaintWindowBackground - the region being modified is just the given region.
*/ */
@@ -356,6 +357,7 @@ rfbPaintWindowBorder (WindowPtr pWin, Re @@ -356,6 +361,7 @@ rfbPaintWindowBorder (WindowPtr pWin, Re
SCREEN_EPILOGUE(PaintWindowBorder,rfbPaintWindowBorder); SCREEN_EPILOGUE(PaintWindowBorder,rfbPaintWindowBorder);
} }
@ -62,10 +73,10 @@ Index: xorg-server-1.9.2/hw/vnc/draw.c
#ifdef CHROMIUM #ifdef CHROMIUM
Bool Bool
Index: xorg-server-1.9.2/hw/vnc/init.c Index: xorg-server-1.9.3/hw/vnc/init.c
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/init.c --- xorg-server-1.9.3.orig/hw/vnc/init.c
+++ xorg-server-1.9.2/hw/vnc/init.c +++ xorg-server-1.9.3/hw/vnc/init.c
@@ -670,8 +670,8 @@ rfbScreenInit(index, pScreen, argc, argv @@ -670,8 +670,8 @@ rfbScreenInit(index, pScreen, argc, argv
prfb->CloseScreen = pScreen->CloseScreen; prfb->CloseScreen = pScreen->CloseScreen;
prfb->WakeupHandler = pScreen->WakeupHandler; prfb->WakeupHandler = pScreen->WakeupHandler;
@ -88,10 +99,10 @@ Index: xorg-server-1.9.2/hw/vnc/init.c
pScreen->CopyWindow = rfbCopyWindow; pScreen->CopyWindow = rfbCopyWindow;
pScreen->ClearToBackground = rfbClearToBackground; pScreen->ClearToBackground = rfbClearToBackground;
pScreen->RestoreAreas = rfbRestoreAreas; pScreen->RestoreAreas = rfbRestoreAreas;
Index: xorg-server-1.9.2/hw/vnc/sprite.c Index: xorg-server-1.9.3/hw/vnc/sprite.c
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/sprite.c --- xorg-server-1.9.3.orig/hw/vnc/sprite.c
+++ xorg-server-1.9.2/hw/vnc/sprite.c +++ xorg-server-1.9.3/hw/vnc/sprite.c
@@ -96,8 +96,10 @@ static void rfbSpriteInstallColormap @@ -96,8 +96,10 @@ static void rfbSpriteInstallColormap
static void rfbSpriteStoreColors(ColormapPtr pMap, int ndef, static void rfbSpriteStoreColors(ColormapPtr pMap, int ndef,
xColorItem *pdef); xColorItem *pdef);
@ -103,16 +114,42 @@ Index: xorg-server-1.9.2/hw/vnc/sprite.c
static void rfbSpritePaintWindowBorder(WindowPtr pWin, static void rfbSpritePaintWindowBorder(WindowPtr pWin,
RegionPtr pRegion, int what); RegionPtr pRegion, int what);
static void rfbSpriteCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, static void rfbSpriteCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg,
@@ -329,7 +331,7 @@ rfbSpriteInitialize (pScreen, cursorFunc @@ -112,8 +114,9 @@ static void rfbSpriteSaveDoomedAreas
static RegionPtr rfbSpriteRestoreAreas(WindowPtr pWin, RegionPtr pRgnExposed);
static void rfbSpriteComputeSaved(ScreenPtr pScreen);
-static int rfbSpriteScreenKeyStore;
-static DevPrivateKey rfbSpriteScreenKey = &rfbSpriteScreenKeyStore;
+static DevPrivateKeyRec rfbSpriteScreenKeyRec;
+#define rfbSpriteScreenKey (&rfbSpriteScreenKeyRec)
+
#define SCREEN_PROLOGUE(pScreen, field) ((pScreen)->field = \
((rfbSpriteScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, \
@@ -145,8 +148,8 @@ static GCFuncs rfbSpriteGCFuncs = {
rfbSpriteCopyClip,
};
-static int rfbSpriteGCKeyStore;
-static DevPrivateKey rfbSpriteGCKey = &rfbSpriteGCKeyStore;
+static DevPrivateKeyRec rfbSpriteGCKeyRec;
+#define rfbSpriteGCKey (&rfbSpriteGCKeyRec)
#define GC_FUNC_PROLOGUE(pGC) \
rfbSpriteGCPtr pGCPriv = \
@@ -329,7 +332,10 @@ rfbSpriteInitialize (pScreen, cursorFunc
rfbSpriteScreenPtr pPriv; rfbSpriteScreenPtr pPriv;
VisualPtr pVisual; VisualPtr pVisual;
- if (!dixRequestPrivate(rfbSpriteGCKey, sizeof(rfbSpriteGCRec))) - if (!dixRequestPrivate(rfbSpriteGCKey, sizeof(rfbSpriteGCRec)))
+ if (!dixRegisterPrivateKey(rfbSpriteScreenKey, PRIVATE_SCREEN, 0))
+ return FALSE;
+
+ if (!dixRegisterPrivateKey(rfbSpriteGCKey, PRIVATE_GC, sizeof(rfbSpriteGCRec))) + if (!dixRegisterPrivateKey(rfbSpriteGCKey, PRIVATE_GC, sizeof(rfbSpriteGCRec)))
return FALSE; return FALSE;
pPriv = (rfbSpriteScreenPtr) xalloc (sizeof (rfbSpriteScreenRec)); pPriv = (rfbSpriteScreenPtr) xalloc (sizeof (rfbSpriteScreenRec));
@@ -357,8 +359,8 @@ rfbSpriteInitialize (pScreen, cursorFunc @@ -357,8 +363,8 @@ rfbSpriteInitialize (pScreen, cursorFunc
pPriv->StoreColors = pScreen->StoreColors; pPriv->StoreColors = pScreen->StoreColors;
pPriv->DisplayCursor = pScreen->DisplayCursor; pPriv->DisplayCursor = pScreen->DisplayCursor;
@ -123,7 +160,7 @@ Index: xorg-server-1.9.2/hw/vnc/sprite.c
pPriv->CopyWindow = pScreen->CopyWindow; pPriv->CopyWindow = pScreen->CopyWindow;
pPriv->ClearToBackground = pScreen->ClearToBackground; pPriv->ClearToBackground = pScreen->ClearToBackground;
@@ -393,8 +395,8 @@ rfbSpriteInitialize (pScreen, cursorFunc @@ -393,8 +399,8 @@ rfbSpriteInitialize (pScreen, cursorFunc
pScreen->InstallColormap = rfbSpriteInstallColormap; pScreen->InstallColormap = rfbSpriteInstallColormap;
pScreen->StoreColors = rfbSpriteStoreColors; pScreen->StoreColors = rfbSpriteStoreColors;
@ -134,7 +171,7 @@ Index: xorg-server-1.9.2/hw/vnc/sprite.c
pScreen->CopyWindow = rfbSpriteCopyWindow; pScreen->CopyWindow = rfbSpriteCopyWindow;
pScreen->ClearToBackground = rfbSpriteClearToBackground; pScreen->ClearToBackground = rfbSpriteClearToBackground;
@@ -435,8 +437,8 @@ rfbSpriteCloseScreen (i, pScreen) @@ -435,8 +441,8 @@ rfbSpriteCloseScreen (i, pScreen)
pScreen->InstallColormap = pScreenPriv->InstallColormap; pScreen->InstallColormap = pScreenPriv->InstallColormap;
pScreen->StoreColors = pScreenPriv->StoreColors; pScreen->StoreColors = pScreenPriv->StoreColors;
@ -145,7 +182,7 @@ Index: xorg-server-1.9.2/hw/vnc/sprite.c
pScreen->CopyWindow = pScreenPriv->CopyWindow; pScreen->CopyWindow = pScreenPriv->CopyWindow;
pScreen->ClearToBackground = pScreenPriv->ClearToBackground; pScreen->ClearToBackground = pScreenPriv->ClearToBackground;
@@ -809,6 +811,7 @@ rfbSpriteRestoreAreas (pWin, prgnExposed @@ -809,6 +815,7 @@ rfbSpriteRestoreAreas (pWin, prgnExposed
* Window wrappers * Window wrappers
*/ */
@ -153,7 +190,7 @@ Index: xorg-server-1.9.2/hw/vnc/sprite.c
static void static void
rfbSpritePaintWindowBackground (pWin, pRegion, what) rfbSpritePaintWindowBackground (pWin, pRegion, what)
WindowPtr pWin; WindowPtr pWin;
@@ -866,6 +869,7 @@ rfbSpritePaintWindowBorder (pWin, pRegio @@ -866,6 +873,7 @@ rfbSpritePaintWindowBorder (pWin, pRegio
SCREEN_EPILOGUE (pScreen, PaintWindowBorder, rfbSpritePaintWindowBorder); SCREEN_EPILOGUE (pScreen, PaintWindowBorder, rfbSpritePaintWindowBorder);
} }
@ -161,10 +198,10 @@ Index: xorg-server-1.9.2/hw/vnc/sprite.c
static void static void
rfbSpriteCopyWindow (pWin, ptOldOrg, pRegion) rfbSpriteCopyWindow (pWin, ptOldOrg, pRegion)
Index: xorg-server-1.9.2/hw/vnc/spritest.h Index: xorg-server-1.9.3/hw/vnc/spritest.h
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/spritest.h --- xorg-server-1.9.3.orig/hw/vnc/spritest.h
+++ xorg-server-1.9.2/hw/vnc/spritest.h +++ xorg-server-1.9.3/hw/vnc/spritest.h
@@ -70,8 +70,8 @@ typedef struct { @@ -70,8 +70,8 @@ typedef struct {
ScreenBlockHandlerProcPtr BlockHandler; ScreenBlockHandlerProcPtr BlockHandler;
InstallColormapProcPtr InstallColormap; InstallColormapProcPtr InstallColormap;
@ -176,10 +213,10 @@ Index: xorg-server-1.9.2/hw/vnc/spritest.h
CopyWindowProcPtr CopyWindow; CopyWindowProcPtr CopyWindow;
ClearToBackgroundProcPtr ClearToBackground; ClearToBackgroundProcPtr ClearToBackground;
SaveDoomedAreasProcPtr SaveDoomedAreas; SaveDoomedAreasProcPtr SaveDoomedAreas;
Index: xorg-server-1.9.2/hw/vnc/cutpaste.c Index: xorg-server-1.9.3/hw/vnc/cutpaste.c
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/cutpaste.c --- xorg-server-1.9.3.orig/hw/vnc/cutpaste.c
+++ xorg-server-1.9.2/hw/vnc/cutpaste.c +++ xorg-server-1.9.3/hw/vnc/cutpaste.c
@@ -54,7 +54,7 @@ rfbSetXCutText(char *str, int len) @@ -54,7 +54,7 @@ rfbSetXCutText(char *str, int len)
Selection *pSel; Selection *pSel;
@ -189,11 +226,39 @@ Index: xorg-server-1.9.2/hw/vnc/cutpaste.c
8, PropModeReplace, len, 8, PropModeReplace, len,
(pointer)str, TRUE); (pointer)str, TRUE);
Index: xorg-server-1.9.2/hw/vnc/dispcur.c Index: xorg-server-1.9.3/hw/vnc/dispcur.c
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/dispcur.c --- xorg-server-1.9.3.orig/hw/vnc/dispcur.c
+++ xorg-server-1.9.2/hw/vnc/dispcur.c +++ xorg-server-1.9.3/hw/vnc/dispcur.c
@@ -340,7 +340,7 @@ rfbDCRealize (ScreenPtr pScreen, CursorP @@ -74,10 +74,10 @@ in this Software without prior written a
/* per-screen private data */
-static int rfbDCScreenKeyStore;
-static DevPrivateKey rfbDCScreenKey = &rfbDCScreenKeyStore;
-static int rfbScreenKeyStore;
-static DevPrivateKey rfbScreenKey = &rfbScreenKeyStore;
+static DevPrivateKeyRec rfbDCScreenKeyRec;
+#define rfbDCScreenKey (&rfbDCScreenKeyRec)
+static DevPrivateKeyRec rfbScreenKeyRec;
+#define rfbScreenKey (&rfbScreenKeyRec)
static Bool rfbDCCloseScreen(int index, ScreenPtr pScreen);
@@ -137,6 +137,12 @@ rfbDCInitialize (ScreenPtr pScreen, miPo
{
rfbDCScreenPtr pScreenPriv;
+ if (!dixRegisterPrivateKey(rfbDCScreenKey, PRIVATE_SCREEN, 0))
+ return FALSE;
+
+ if (!dixRegisterPrivateKey(rfbScreenKey, PRIVATE_CURSOR_BITS, 0))
+ return FALSE;
+
pScreenPriv = (rfbDCScreenPtr) xalloc (sizeof (rfbDCScreenRec));
if (!pScreenPriv)
return FALSE;
@@ -340,7 +346,7 @@ rfbDCRealize (ScreenPtr pScreen, CursorP
0, 0, pCursor->bits->width, pCursor->bits->height, 0, 0, pCursor->bits->width, pCursor->bits->height,
0, XYPixmap, (char *)pCursor->bits->source); 0, XYPixmap, (char *)pCursor->bits->source);
gcvals[0] = GXand; gcvals[0] = GXand;
@ -202,7 +267,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c
ValidateGC ((DrawablePtr)pPriv->sourceBits, pGC); ValidateGC ((DrawablePtr)pPriv->sourceBits, pGC);
(*pGC->ops->PutImage) ((DrawablePtr)pPriv->sourceBits, pGC, 1, (*pGC->ops->PutImage) ((DrawablePtr)pPriv->sourceBits, pGC, 1,
0, 0, pCursor->bits->width, pCursor->bits->height, 0, 0, pCursor->bits->width, pCursor->bits->height,
@@ -348,13 +348,13 @@ rfbDCRealize (ScreenPtr pScreen, CursorP @@ -348,13 +354,13 @@ rfbDCRealize (ScreenPtr pScreen, CursorP
/* mask bits -- pCursor->mask & ~pCursor->source */ /* mask bits -- pCursor->mask & ~pCursor->source */
gcvals[0] = GXcopy; gcvals[0] = GXcopy;
@ -218,7 +283,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c
ValidateGC ((DrawablePtr)pPriv->maskBits, pGC); ValidateGC ((DrawablePtr)pPriv->maskBits, pGC);
(*pGC->ops->PutImage) ((DrawablePtr)pPriv->maskBits, pGC, 1, (*pGC->ops->PutImage) ((DrawablePtr)pPriv->maskBits, pGC, 1,
0, 0, pCursor->bits->width, pCursor->bits->height, 0, 0, pCursor->bits->width, pCursor->bits->height,
@@ -396,7 +396,7 @@ rfbDCPutBits (DrawablePtr pDrawable, rfb @@ -396,7 +402,7 @@ rfbDCPutBits (DrawablePtr pDrawable, rfb
if (sourceGC->fgPixel != source) if (sourceGC->fgPixel != source)
{ {
gcvals[0] = source; gcvals[0] = source;
@ -227,7 +292,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c
} }
if (sourceGC->serialNumber != pDrawable->serialNumber) if (sourceGC->serialNumber != pDrawable->serialNumber)
ValidateGC (pDrawable, sourceGC); ValidateGC (pDrawable, sourceGC);
@@ -404,7 +404,7 @@ rfbDCPutBits (DrawablePtr pDrawable, rfb @@ -404,7 +410,7 @@ rfbDCPutBits (DrawablePtr pDrawable, rfb
if (maskGC->fgPixel != mask) if (maskGC->fgPixel != mask)
{ {
gcvals[0] = mask; gcvals[0] = mask;
@ -236,7 +301,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c
} }
if (maskGC->serialNumber != pDrawable->serialNumber) if (maskGC->serialNumber != pDrawable->serialNumber)
ValidateGC (pDrawable, maskGC); ValidateGC (pDrawable, maskGC);
@@ -451,7 +451,7 @@ rfbDCPutUpCursor (pScreen, pCursor, x, y @@ -451,7 +457,7 @@ rfbDCPutUpCursor (pScreen, pCursor, x, y
} }
pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
rfbDCScreenKey); rfbDCScreenKey);
@ -245,7 +310,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c
#ifdef ARGB_CURSOR #ifdef ARGB_CURSOR
if (pPriv->pPicture) if (pPriv->pPicture)
{ {
@@ -498,7 +498,7 @@ rfbDCSaveUnderCursor (pScreen, x, y, w, @@ -498,7 +504,7 @@ rfbDCSaveUnderCursor (pScreen, x, y, w,
pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
rfbDCScreenKey); rfbDCScreenKey);
pSave = pScreenPriv->pSave; pSave = pScreenPriv->pSave;
@ -254,7 +319,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c
if (!pSave || pSave->drawable.width < w || pSave->drawable.height < h) if (!pSave || pSave->drawable.width < w || pSave->drawable.height < h)
{ {
if (pSave) if (pSave)
@@ -531,7 +531,7 @@ rfbDCRestoreUnderCursor (pScreen, x, y, @@ -531,7 +537,7 @@ rfbDCRestoreUnderCursor (pScreen, x, y,
pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
rfbDCScreenKey); rfbDCScreenKey);
pSave = pScreenPriv->pSave; pSave = pScreenPriv->pSave;
@ -263,7 +328,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c
if (!pSave) if (!pSave)
return FALSE; return FALSE;
if (!EnsureGC(pScreenPriv->pRestoreGC, pWin)) if (!EnsureGC(pScreenPriv->pRestoreGC, pWin))
@@ -558,7 +558,7 @@ rfbDCChangeSave (pScreen, x, y, w, h, dx @@ -558,7 +564,7 @@ rfbDCChangeSave (pScreen, x, y, w, h, dx
pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
rfbDCScreenKey); rfbDCScreenKey);
pSave = pScreenPriv->pSave; pSave = pScreenPriv->pSave;
@ -272,7 +337,7 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c
/* /*
* restore the bits which are about to get trashed * restore the bits which are about to get trashed
*/ */
@@ -702,7 +702,7 @@ rfbDCMoveCursor (pScreen, pCursor, x, y, @@ -702,7 +708,7 @@ rfbDCMoveCursor (pScreen, pCursor, x, y,
} }
pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates, pScreenPriv = (rfbDCScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
rfbDCScreenKey); rfbDCScreenKey);
@ -281,10 +346,10 @@ Index: xorg-server-1.9.2/hw/vnc/dispcur.c
pTemp = pScreenPriv->pTemp; pTemp = pScreenPriv->pTemp;
if (!pTemp || if (!pTemp ||
pTemp->drawable.width != pScreenPriv->pSave->drawable.width || pTemp->drawable.width != pScreenPriv->pSave->drawable.width ||
Index: xorg-server-1.9.2/hw/vnc/kbdptr.c Index: xorg-server-1.9.3/hw/vnc/kbdptr.c
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/kbdptr.c --- xorg-server-1.9.3.orig/hw/vnc/kbdptr.c
+++ xorg-server-1.9.2/hw/vnc/kbdptr.c +++ xorg-server-1.9.3/hw/vnc/kbdptr.c
@@ -153,7 +153,7 @@ KbdAddEvent(Bool down, KeySym keySym, rf @@ -153,7 +153,7 @@ KbdAddEvent(Bool down, KeySym keySym, rf
#ifdef CORBA #ifdef CORBA
if (cl) { if (cl) {
@ -303,10 +368,10 @@ Index: xorg-server-1.9.2/hw/vnc/kbdptr.c
32, PropModeReplace, 1, (pointer)&clientId, TRUE); 32, PropModeReplace, 1, (pointer)&clientId, TRUE);
} }
#endif #endif
Index: xorg-server-1.9.2/hw/vnc/rfbserver.c Index: xorg-server-1.9.3/hw/vnc/rfbserver.c
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/rfbserver.c --- xorg-server-1.9.3.orig/hw/vnc/rfbserver.c
+++ xorg-server-1.9.2/hw/vnc/rfbserver.c +++ xorg-server-1.9.3/hw/vnc/rfbserver.c
@@ -82,7 +82,7 @@ void @@ -82,7 +82,7 @@ void
rfbRootPropertyChange(ScreenPtr pScreen) rfbRootPropertyChange(ScreenPtr pScreen)
{ {
@ -373,10 +438,10 @@ Index: xorg-server-1.9.2/hw/vnc/rfbserver.c
#else #else
redEntry = (EntryPtr)&pVNC->rfbInstalledColormap->red[redPart]; redEntry = (EntryPtr)&pVNC->rfbInstalledColormap->red[redPart];
greenEntry = (EntryPtr)&pVNC->rfbInstalledColormap->green[greenPart]; greenEntry = (EntryPtr)&pVNC->rfbInstalledColormap->green[greenPart];
Index: xorg-server-1.9.2/hw/vnc/tabletranstemplate.c Index: xorg-server-1.9.3/hw/vnc/tabletranstemplate.c
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/tabletranstemplate.c --- xorg-server-1.9.3.orig/hw/vnc/tabletranstemplate.c
+++ xorg-server-1.9.2/hw/vnc/tabletranstemplate.c +++ xorg-server-1.9.3/hw/vnc/tabletranstemplate.c
@@ -67,7 +67,7 @@ rfbTranslateWithSingleTableINtoOUT (Scre @@ -67,7 +67,7 @@ rfbTranslateWithSingleTableINtoOUT (Scre
OUT_T *op = (OUT_T *)optr; OUT_T *op = (OUT_T *)optr;
OUT_T *opLineEnd; OUT_T *opLineEnd;
@ -395,10 +460,10 @@ Index: xorg-server-1.9.2/hw/vnc/tabletranstemplate.c
int truewidth = PixmapBytePad(width, in->bitsPerPixel); int truewidth = PixmapBytePad(width, in->bitsPerPixel);
unsigned char *iptr = malloc(truewidth * height * in->bitsPerPixel / 8); unsigned char *iptr = malloc(truewidth * height * in->bitsPerPixel / 8);
int ipextra = truewidth - width; int ipextra = truewidth - width;
Index: xorg-server-1.9.2/hw/vnc/translate.c Index: xorg-server-1.9.3/hw/vnc/translate.c
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/translate.c --- xorg-server-1.9.3.orig/hw/vnc/translate.c
+++ xorg-server-1.9.2/hw/vnc/translate.c +++ xorg-server-1.9.3/hw/vnc/translate.c
@@ -167,7 +167,7 @@ rfbTranslateNone(ScreenPtr pScreen, char @@ -167,7 +167,7 @@ rfbTranslateNone(ScreenPtr pScreen, char
int width, int height, int x, int y) int width, int height, int x, int y)
{ {
@ -444,10 +509,10 @@ Index: xorg-server-1.9.2/hw/vnc/translate.c
#else #else
nColours = pVNC->rfbInstalledColormap->pVisual->ColormapEntries; nColours = pVNC->rfbInstalledColormap->pVisual->ColormapEntries;
#endif #endif
Index: xorg-server-1.9.2/hw/dmx/vnc/vncint.h Index: xorg-server-1.9.3/hw/dmx/vnc/vncint.h
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/dmx/vnc/vncint.h --- xorg-server-1.9.3.orig/hw/dmx/vnc/vncint.h
+++ xorg-server-1.9.2/hw/dmx/vnc/vncint.h +++ xorg-server-1.9.3/hw/dmx/vnc/vncint.h
@@ -114,8 +114,8 @@ typedef struct { @@ -114,8 +114,8 @@ typedef struct {
CloseScreenProcPtr CloseScreen; CloseScreenProcPtr CloseScreen;
@ -459,10 +524,10 @@ Index: xorg-server-1.9.2/hw/dmx/vnc/vncint.h
CopyWindowProcPtr CopyWindow; CopyWindowProcPtr CopyWindow;
ClearToBackgroundProcPtr ClearToBackground; ClearToBackgroundProcPtr ClearToBackground;
RestoreAreasProcPtr RestoreAreas; RestoreAreasProcPtr RestoreAreas;
Index: xorg-server-1.9.2/hw/xfree86/vnc/vncint.h Index: xorg-server-1.9.3/hw/xfree86/vnc/vncint.h
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/xfree86/vnc/vncint.h --- xorg-server-1.9.3.orig/hw/xfree86/vnc/vncint.h
+++ xorg-server-1.9.2/hw/xfree86/vnc/vncint.h +++ xorg-server-1.9.3/hw/xfree86/vnc/vncint.h
@@ -112,8 +112,8 @@ typedef struct { @@ -112,8 +112,8 @@ typedef struct {
CloseScreenProcPtr CloseScreen; CloseScreenProcPtr CloseScreen;
@ -474,23 +539,42 @@ Index: xorg-server-1.9.2/hw/xfree86/vnc/vncint.h
CopyWindowProcPtr CopyWindow; CopyWindowProcPtr CopyWindow;
ClearToBackgroundProcPtr ClearToBackground; ClearToBackgroundProcPtr ClearToBackground;
RestoreAreasProcPtr RestoreAreas; RestoreAreasProcPtr RestoreAreas;
Index: xorg-server-1.9.2/hw/vnc/vncext.c Index: xorg-server-1.9.3/hw/vnc/vncext.c
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/vncext.c --- xorg-server-1.9.3.orig/hw/vnc/vncext.c
+++ xorg-server-1.9.2/hw/vnc/vncext.c +++ xorg-server-1.9.3/hw/vnc/vncext.c
@@ -763,7 +763,7 @@ VncExtensionInit(void) @@ -36,9 +36,10 @@
#include <arpa/inet.h>
#include <netdb.h>
-static int vncCreateScreenResourcesKeyStore, rfbGCKeyStore;
-DevPrivateKey vncCreateScreenResourcesKey = &vncCreateScreenResourcesKeyStore;
-DevPrivateKey rfbGCKey = &rfbGCKeyStore;
+static DevPrivateKeyRec vncCreateScreenResourcesKeyRec;
+#define vncCreateScreenResourcesKey (&vncCreateScreenResourcesKeyRec)
+DevPrivateKeyRec rfbGCKeyRec;
+#define rfbGCKey (&rfbGCKeyRec)
int VncSelectNotify(ClientPtr client, BOOL onoff);
void VncExtensionInit(void);
@@ -762,8 +763,12 @@ VncExtensionInit(void)
vncExtGeneration = serverGeneration; vncExtGeneration = serverGeneration;
+ // doesn't seem to be valid any more - mhopf 21.12.2010
// no allocation needed for screen privates // no allocation needed for screen privates
- if (!dixRequestPrivate(rfbGCKey, sizeof(rfbGCRec))) - if (!dixRequestPrivate(rfbGCKey, sizeof(rfbGCRec)))
+ if (!dixRegisterPrivateKey(vncCreateScreenResourcesKey, PRIVATE_SCREEN, 0))
+ return;
+
+ if (!dixRegisterPrivateKey(rfbGCKey, PRIVATE_GC, sizeof(rfbGCRec))) + if (!dixRegisterPrivateKey(rfbGCKey, PRIVATE_GC, sizeof(rfbGCRec)))
return; return;
#if XFREE86VNC #if XFREE86VNC
Index: xorg-server-1.9.2/hw/vnc/tableinitcmtemplate.c Index: xorg-server-1.9.3/hw/vnc/tableinitcmtemplate.c
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/vnc/tableinitcmtemplate.c --- xorg-server-1.9.3.orig/hw/vnc/tableinitcmtemplate.c
+++ xorg-server-1.9.2/hw/vnc/tableinitcmtemplate.c +++ xorg-server-1.9.3/hw/vnc/tableinitcmtemplate.c
@@ -61,7 +61,7 @@ rfbInitColourMapSingleTableOUT (ScreenPt @@ -61,7 +61,7 @@ rfbInitColourMapSingleTableOUT (ScreenPt
t = (OUT_T *)*table; t = (OUT_T *)*table;
@ -500,10 +584,10 @@ Index: xorg-server-1.9.2/hw/vnc/tableinitcmtemplate.c
#else #else
pent = (EntryPtr)&pVNC->rfbInstalledColormap->red[0]; pent = (EntryPtr)&pVNC->rfbInstalledColormap->red[0];
#endif #endif
Index: xorg-server-1.9.2/hw/xfree86/vnc/vncInit.c Index: xorg-server-1.9.3/hw/xfree86/vnc/vncInit.c
=================================================================== ===================================================================
--- xorg-server-1.9.2.orig/hw/xfree86/vnc/vncInit.c --- xorg-server-1.9.3.orig/hw/xfree86/vnc/vncInit.c
+++ xorg-server-1.9.2/hw/xfree86/vnc/vncInit.c +++ xorg-server-1.9.3/hw/xfree86/vnc/vncInit.c
@@ -286,8 +286,8 @@ VNCInit(ScreenPtr pScreen, unsigned char @@ -286,8 +286,8 @@ VNCInit(ScreenPtr pScreen, unsigned char
pScreenPriv->CloseScreen = pScreen->CloseScreen; pScreenPriv->CloseScreen = pScreen->CloseScreen;

View File

@ -4,6 +4,8 @@ Fri Feb 11 16:41:02 UTC 2011 - mhopf@novell.com
- Update xorg-server-xf4vnc-fixes_1_9.diff: - Update xorg-server-xf4vnc-fixes_1_9.diff:
Fix Xvnc rendering issues. Fix Xvnc rendering issues.
- Enable build of Xvnc again. - Enable build of Xvnc again.
- Merge xorg-server-xf4vnc-fix-crash-on-193.diff
into xorg-server-xf4vnc-fixes_1_9.diff
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Feb 3 17:36:16 UTC 2011 - sndirsch@novell.com Thu Feb 3 17:36:16 UTC 2011 - sndirsch@novell.com

View File

@ -80,7 +80,6 @@ Patch48: xorg-server-xf4vnc-fix.diff
Patch49: xorg-server-xf4vnc-fixes_1_8.diff Patch49: xorg-server-xf4vnc-fixes_1_8.diff
Patch50: xorg-server-xf4vnc-fixes_1_9.diff Patch50: xorg-server-xf4vnc-fixes_1_9.diff
Patch51: xorg-server-xf4vnc-bug605015-vnc-umlauts.diff Patch51: xorg-server-xf4vnc-bug605015-vnc-umlauts.diff
Patch52: xorg-server-xf4vnc-fix-crash-on-193.diff
%endif %endif
Patch45: bug-197858_dpms.diff Patch45: bug-197858_dpms.diff
Patch67: xorg-docs.diff Patch67: xorg-docs.diff
@ -208,7 +207,6 @@ An X Window System server for Virtual Network Computing (VNC).
%patch49 -p0 %patch49 -p0
%patch50 -p1 %patch50 -p1
#%patch51 -p1 #%patch51 -p1
%patch52 -p1
chmod 755 hw/vnc/symlink-vnc.sh chmod 755 hw/vnc/symlink-vnc.sh
%endif %endif
%patch45 -p0 %patch45 -p0