We are casting pDrawable, but with the XDrawArc case, the drawable is not a
window but a pixmap. Pixmap structures doesn't have a borderClip member.
Why do we need to deal with pixmaps at all? In revision r2452, we started
If we need to continue hooking pixmap operations, this patch should solve
the problem:
Index: tigervnc/unix/xserver/hw/vnc/vncHooks.cc
===================================================================
--- tigervnc/unix/xserver/hw/vnc/vncHooks.cc (revision 20732)
+++ tigervnc/unix/xserver/hw/vnc/vncHooks.cc (arbetskopia)
@@ -717,11 +717,12 @@
{
GC_OP_UNWRAPPER(pDrawable, pGC, FillSpans);
- RegionHelper changed(pScreen, &((WindowPtr)pDrawable)->borderClip);
-
(*pGC->ops->FillSpans) (pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- vncHooksScreen->desktop->add_changed(changed.reg);
+ if (pDrawable->type == DRAWABLE_WINDOW) {
+ RegionHelper changed(pScreen, &((WindowPtr)pDrawable)->borderClip);
+ vncHooksScreen->desktop->add_changed(changed.reg);
+ }
}
// SetSpans - changed region is the whole of borderClip. This is pessimistic,
@@ -733,11 +734,12 @@
{
GC_OP_UNWRAPPER(pDrawable, pGC, SetSpans);
- RegionHelper changed(pScreen, &((WindowPtr)pDrawable)->borderClip);
-
(*pGC->ops->SetSpans) (pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
- vncHooksScreen->desktop->add_changed(changed.reg);
+ if (pDrawable->type == DRAWABLE_WINDOW) {
+ RegionHelper changed(pScreen, &((WindowPtr)pDrawable)->borderClip);
+ vncHooksScreen->desktop->add_changed(changed.reg);
+ }
}
// PutImage - changed region is the given rectangle, clipped by pCompositeClip
With this patch, the xts suite completes without crashing Xvnc.
Rgds,
---
Peter Åstrand ThinLinc Chief Developer
Cendio AB http://www.cendio.com
Wallenbergs gata 4
583 30 Linköping Phone: +46-13-21 46 00
------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
Tigervnc-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tigervnc-devel