Contents of /trunk/vnc/patches/vnc-server-privates.patch
Parent Directory | Revision Log
Revision 639 -
(show annotations)
(download)
Tue Jun 3 20:56:41 2008 UTC (16 years, 3 months ago) by niro
File size: 5354 byte(s)
Tue Jun 3 20:56:41 2008 UTC (16 years, 3 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; |