Commit a68f3501 authored by Keith Packard's avatar Keith Packard
Browse files

Remove debugging code which did a full tree walk on every window operation

Eliminate needless (and, it turns out, dangerous) call to ChangeGC on
    DestroyGCPrivate.
in cwSetWindowPixmap, check if the pixmap is the screen pixmap and disable
    the wrapper by setting the private to NULL.
parent 5db70ae2
......@@ -49,6 +49,12 @@
#include <X11/extensions/compositeproto.h>
#include <assert.h>
/*
* enable this for debugging
#define COMPOSITE_DEBUG
*/
typedef struct _CompClientWindow {
struct _CompClientWindow *next;
XID id;
......@@ -118,10 +124,6 @@ typedef struct _CompScreen {
XID alternateVisuals[NUM_COMP_ALTERNATE_VISUALS];
} CompScreenRec, *CompScreenPtr;
#define HasCompRedirect(w) (wPixmap(w) != wPixmap(w->parent))
#define wScreen(w) ((w)->drawable.pScreen)
#define wPixmap(w) (*(wScreen(w)->GetWindowPixmap) (w))
extern int CompScreenPrivateIndex;
extern int CompWindowPrivateIndex;
extern int CompSubwindowsPrivateIndex;
......@@ -192,11 +194,11 @@ compScreenInit (ScreenPtr pScreen);
* compwindow.c
*/
#ifdef NDEBUG
#define compCheckTree(s)
#else
#ifdef COMPOSITE_DEBUG
void
compCheckTree (ScreenPtr pScreen);
#else
#define compCheckTree(s)
#endif
void
......
......@@ -27,7 +27,7 @@
#endif
#include "compint.h"
#ifndef NDEBUG
#ifdef COMPOSITE_DEBUG
static int
compCheckWindow (WindowPtr pWin, pointer data)
{
......@@ -151,8 +151,10 @@ compPositionWindow (WindowPtr pWin, int x, int y)
*
compCheckRedirect (pWin);
*/
#ifdef COMPOSITE_DEBUG
if (pWin->redirectDraw != (pWin->viewable && (GetCompWindow(pWin) != NULL)))
abort ();
#endif
if (pWin->redirectDraw)
{
PixmapPtr pPixmap = (*pScreen->GetWindowPixmap) (pWin);
......
......@@ -164,11 +164,6 @@ cwDestroyGCPrivate(GCPtr pGC)
FreeGC(pPriv->pBackingGC, (XID)0);
setCwGC (pGC, pPriv->wrapFuncs);
xfree((pointer)pPriv);
/* The ChangeGC and ValidateGCs on the window haven't been passed down the
* stack, so report all state being changed.
*/
pGC->stateChanges |= (1 << (GCLastBit + 1)) - 1;
(*pGC->funcs->ChangeGC)(pGC, (1 << (GCLastBit + 1)) - 1);
}
/* GCFuncs wrappers. These only get used when the drawable is a window with a
......@@ -747,6 +742,10 @@ cwGetWindowPixmap (WindowPtr pWin)
static void
cwSetWindowPixmap (WindowPtr pWindow, PixmapPtr pPixmap)
{
ScreenPtr pScreen = pWindow->drawable.pScreen;
if (pPixmap == (*pScreen->GetScreenPixmap) (pScreen))
pPixmap = NULL;
setCwPixmap (pWindow, pPixmap);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment