Magellan Linux

Contents of /trunk/vnc/patches/vnc-server-privates.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 639 - (show annotations) (download)
Tue Jun 3 20:56:41 2008 UTC (15 years, 11 months ago) by niro
File size: 5354 byte(s)
-renamed patch

1 --- a/bin/xorg/hw/vnc/vncHooks.cc Mon Jan 21 17:29:11 2008 +0100
2 +++ b/bin/xorg/hw/vnc/vncHooks.cc Thu Jan 24 09:50:48 2008 +0100
3 @@ -86,9 +86,15 @@ typedef struct {
4 GCOps *wrappedOps;
5 } vncHooksGCRec, *vncHooksGCPtr;
6
7 -static int vncHooksScreenIndex;
8 -static int vncHooksGCIndex;
9 +static DevPrivateKey vncHooksScrPrivateKey = &vncHooksScrPrivateKey;
10 +static DevPrivateKey vncHooksGCPrivateKey = &vncHooksGCPrivateKey;
11
12 +#define vncHooksScreenPrivate(scrn) \
13 + (vncHooksScreenPtr) dixLookupPrivate (&(scrn)->devPrivates, \
14 + vncHooksScrPrivateKey)
15 +#define vncHooksGCPrivate(pGC) \
16 + (vncHooksGCPtr) dixLookupPrivate (&(pGC)->devPrivates, \
17 + vncHooksGCPrivateKey)
18
19 // screen functions
20
21 @@ -209,26 +215,11 @@ Bool vncHooksInit(ScreenPtr pScreen, Xse
22 if (vncHooksGeneration != serverGeneration) {
23 vncHooksGeneration = serverGeneration;
24
25 - vncHooksScreenIndex = AllocateScreenPrivateIndex();
26 - if (vncHooksScreenIndex < 0) {
27 - ErrorF("vncHooksInit: AllocateScreenPrivateIndex failed\n");
28 - return FALSE;
29 - }
30 -
31 - vncHooksGCIndex = AllocateGCPrivateIndex();
32 - if (vncHooksGCIndex < 0) {
33 - ErrorF("vncHooksInit: AllocateGCPrivateIndex failed\n");
34 - return FALSE;
35 - }
36 - }
37 -
38 - if (!AllocateGCPrivate(pScreen, vncHooksGCIndex, sizeof(vncHooksGCRec))) {
39 - ErrorF("vncHooksInit: AllocateGCPrivate failed\n");
40 - return FALSE;
41 + if (!dixRequestPrivate (vncHooksGCPrivateKey, sizeof (vncHooksGCRec)))
42 + return FALSE;
43 }
44
45 vncHooksScreen = (vncHooksScreenPtr)xnfalloc(sizeof(vncHooksScreenRec));
46 - pScreen->devPrivates[vncHooksScreenIndex].ptr = (pointer)vncHooksScreen;
47
48 vncHooksScreen->desktop = desktop;
49
50 @@ -266,6 +257,8 @@ Bool vncHooksInit(ScreenPtr pScreen, Xse
51 pScreen->DisplayCursor = vncHooksDisplayCursor;
52 pScreen->BlockHandler = vncHooksBlockHandler;
53
54 + dixSetPrivate (&pScreen->devPrivates, vncHooksScrPrivateKey, vncHooksScreen);
55 +
56 return TRUE;
57 }
58
59 @@ -281,11 +274,10 @@ Bool vncHooksInit(ScreenPtr pScreen, Xse
60 // distinct type, so it would have to use templates, and it's not worth that
61 // much pain.
62
63 -#define SCREEN_UNWRAP(scrn,field) \
64 - ScreenPtr pScreen = scrn; \
65 - vncHooksScreenPtr vncHooksScreen \
66 - = ((vncHooksScreenPtr)pScreen->devPrivates[vncHooksScreenIndex].ptr); \
67 - pScreen->field = vncHooksScreen->field; \
68 +#define SCREEN_UNWRAP(scrn,field) \
69 + ScreenPtr pScreen = scrn; \
70 + vncHooksScreenPtr vncHooksScreen = vncHooksScreenPrivate (scrn); \
71 + pScreen->field = vncHooksScreen->field; \
72 DBGPRINT((stderr,"vncHooks" #field " called\n"));
73
74 #define SCREEN_REWRAP(field) pScreen->field = vncHooks##field;
75 @@ -322,8 +314,7 @@ static Bool vncHooksCreateGC(GCPtr pGC)
76 {
77 SCREEN_UNWRAP(pGC->pScreen, CreateGC);
78
79 - vncHooksGCPtr vncHooksGC
80 - = (vncHooksGCPtr)pGC->devPrivates[vncHooksGCIndex].ptr;
81 + vncHooksGCPtr vncHooksGC = vncHooksGCPrivate (pGC);
82
83 Bool ret = (*pScreen->CreateGC) (pGC);
84
85 @@ -507,7 +498,7 @@ class GCFuncUnwrapper {
86 class GCFuncUnwrapper {
87 public:
88 GCFuncUnwrapper(GCPtr pGC_) : pGC(pGC_) {
89 - vncHooksGC = (vncHooksGCPtr)pGC->devPrivates[vncHooksGCIndex].ptr;
90 + vncHooksGC = vncHooksGCPrivate (pGC);
91 pGC->funcs = vncHooksGC->wrappedFuncs;
92 if (vncHooksGC->wrappedOps)
93 pGC->ops = vncHooksGC->wrappedOps;
94 @@ -592,7 +583,7 @@ public:
95 GCOpUnwrapper(DrawablePtr pDrawable, GCPtr pGC_)
96 : pGC(pGC_), pScreen(pDrawable->pScreen)
97 {
98 - vncHooksGC = (vncHooksGCPtr)pGC->devPrivates[vncHooksGCIndex].ptr;
99 + vncHooksGC = vncHooksGCPrivate (pGC);
100 oldFuncs = pGC->funcs;
101 pGC->funcs = vncHooksGC->wrappedFuncs;
102 pGC->ops = vncHooksGC->wrappedOps;
103 @@ -611,8 +602,7 @@ public:
104 #define GC_OP_UNWRAPPER(pDrawable, pGC, name) \
105 GCOpUnwrapper u(pDrawable, pGC); \
106 ScreenPtr pScreen = (pDrawable)->pScreen; \
107 - vncHooksScreenPtr vncHooksScreen \
108 - = ((vncHooksScreenPtr)pScreen->devPrivates[vncHooksScreenIndex].ptr); \
109 + vncHooksScreenPtr vncHooksScreen = vncHooksScreenPrivate (pScreen); \
110 DBGPRINT((stderr,"vncHooks" #name " called\n"));
111
112
113 @@ -1511,8 +1501,7 @@ static void vncHooksComposite(CARD8 op,
114 INT16 xDst, INT16 yDst, CARD16 width, CARD16 height)
115 {
116 ScreenPtr pScreen = pDst->pDrawable->pScreen;
117 - vncHooksScreenPtr vncHooksScreen = \
118 - ((vncHooksScreenPtr)pScreen->devPrivates[vncHooksScreenIndex].ptr);
119 + vncHooksScreenPtr vncHooksScreen = vncHooksScreenPrivate (pScreen);
120 PictureScreenPtr ps = GetPictureScreen(pScreen);
121 BoxRec box;
122
123 @@ -1534,8 +1523,7 @@ static void vncHooksGlyphs(CARD8 op, Pic
124 GlyphListPtr list, GlyphPtr *glyphs)
125 {
126 ScreenPtr pScreen = pDst->pDrawable->pScreen;
127 - vncHooksScreenPtr vncHooksScreen = \
128 - ((vncHooksScreenPtr)pScreen->devPrivates[vncHooksScreenIndex].ptr);
129 + vncHooksScreenPtr vncHooksScreen = vncHooksScreenPrivate (pScreen);
130 PictureScreenPtr ps = GetPictureScreen(pScreen);
131 int x, y;
132 int n;