On Sam, 2011-03-26 at 11:50 +0000, Maarten Maathuis wrote: > 2011/3/26 Michel Dänzer <[email protected]>: > > From: Michel Dänzer <[email protected]> > > > > The latter calls the former, let's cut the middle man and eliminate a branch > > in a hot path. > > > > Signed-off-by: Michel Dänzer <[email protected]> > > --- > > exa/exa_priv.h | 7 +++---- > > 1 files changed, 3 insertions(+), 4 deletions(-) > > > > diff --git a/exa/exa_priv.h b/exa/exa_priv.h > > index e5d90d4..70de4bd 100644 > > --- a/exa/exa_priv.h > > +++ b/exa/exa_priv.h > > @@ -228,10 +228,10 @@ extern DevPrivateKeyRec exaPixmapPrivateKeyRec; > > extern DevPrivateKeyRec exaGCPrivateKeyRec; > > #define exaGCPrivateKey (&exaGCPrivateKeyRec) > > > > -#define ExaGetScreenPriv(s) > > ((ExaScreenPrivPtr)dixLookupPrivate(&(s)->devPrivates, exaScreenPrivateKey)) > > +#define ExaGetScreenPriv(s) > > ((ExaScreenPrivPtr)dixGetPrivate(&(s)->devPrivates, exaScreenPrivateKey)) > > #define ExaScreenPriv(s) ExaScreenPrivPtr pExaScr = > > ExaGetScreenPriv(s) > > > > -#define ExaGetGCPriv(gc) > > ((ExaGCPrivPtr)dixLookupPrivate(&(gc)->devPrivates, exaGCPrivateKey)) > > +#define ExaGetGCPriv(gc) > > ((ExaGCPrivPtr)dixGetPrivateAddr(&(gc)->devPrivates, exaGCPrivateKey)) > > #define ExaGCPriv(gc) ExaGCPrivPtr pExaGC = ExaGetGCPriv(gc) > > > > /* > > @@ -282,8 +282,7 @@ extern DevPrivateKeyRec exaGCPrivateKeyRec; > > #define EXA_PIXMAP_SCORE_PINNED 1000 > > #define EXA_PIXMAP_SCORE_INIT 1001 > > > > -#define ExaGetPixmapPriv(p) > > ((ExaPixmapPrivPtr)dixLookupPrivate(&(p)->devPrivates, exaPixmapPrivateKey)) > > -#define ExaSetPixmapPriv(p,a) dixSetPrivate(&(p)->devPrivates, > > exaPixmapPrivateKey, a) > > +#define ExaGetPixmapPriv(p) > > ((ExaPixmapPrivPtr)dixGetPrivateAddr(&(p)->devPrivates, > > exaPixmapPrivateKey)) > > #define ExaPixmapPriv(p) ExaPixmapPrivPtr pExaPixmap = > > ExaGetPixmapPriv(p) > > > > #define EXA_RANGE_PITCH (1 << 0) > > This is based on the assumption that the private always exists?
See the dixRegisterPrivateKey() and dixSetPrivate() calls. I've been running with this patch for a while. -- Earthling Michel Dänzer | http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
