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

Reply via email to