The pixmap ops certainly are used for pixmaps (if they aren't offscreen), but they're also used for windows when this screen doesn't have the VT semaphore. I assume that could lead to an privates assertion failure in xserver 1.9.
Signed-off-by: Jamey Sharp <[email protected]> --- I'd appreciate if somebody would test and confirm that xserver 1.9 does indeed assert-fail in this case, and report whether this patch fixes it. hw/xfree86/xaa/xaawrap.h | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/hw/xfree86/xaa/xaawrap.h b/hw/xfree86/xaa/xaawrap.h index 3f3c261..21a242a 100644 --- a/hw/xfree86/xaa/xaawrap.h +++ b/hw/xfree86/xaa/xaawrap.h @@ -45,17 +45,19 @@ #define XAA_PIXMAP_OP_PROLOGUE(pGC, pDraw)\ XAAGCPtr pGCPriv = (XAAGCPtr)dixLookupPrivate(&(pGC)->devPrivates, XAAGetGCKey()); \ - XAAPixmapPtr pixPriv = XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pDraw));\ + XAAPixmapPtr pixPriv = pDraw->type == DRAWABLE_PIXMAP ? XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pDraw)) : 0;\ GCFuncs *oldFuncs = pGC->funcs;\ pGC->funcs = pGCPriv->wrapFuncs;\ pGC->ops = pGCPriv->wrapOps; \ SYNC_CHECK(pGC) -#define XAA_PIXMAP_OP_EPILOGUE(pGC)\ +#define XAA_PIXMAP_OP_EPILOGUE(pGC) do {\ pGCPriv->wrapOps = pGC->ops;\ pGC->funcs = oldFuncs;\ pGC->ops = &XAAPixmapOps;\ - pixPriv->flags |= DIRTY + if(pixPriv)\ + pixPriv->flags |= DIRTY;\ +} while(0) #ifdef HAVE_XORG_CONFIG_H #include <xorg-config.h> -- 1.7.0 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
