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 Tigervnc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tigervnc-devel