[cairo] [PATCH] xcb: make use of _cairo_surface_is_xcb to check for surface type

RAVI NANJUNDAPPA nravi.n at samsung.com
Mon Jul 7 23:34:10 PDT 2014


Thank you Bryce for committing the changes.

Thanks and Best Regards, 
N Ravi

> -----Original Message-----
> From: Bryce W. Harrington [mailto:b.harrington at samsung.com]
> Sent: Monday, July 07, 2014 4:24 PM
> To: RAVI NANJUNDAPPA
> Cc: 'Uli Schlachter'; cairo at cairographics.org
> Subject: Re: [cairo] [PATCH] xcb: make use of _cairo_surface_is_xcb to
check
> for surface type
> 
> On Thu, Jul 03, 2014 at 05:28:49PM +0530, RAVI NANJUNDAPPA wrote:
> > Thank you Uli for reviewing this patch.
> > Please find attached the patch updated with the changes to take care
> > of the cairo coding style.
> 
> Looks good, pushed.
> 
> > Thanks and Best Regards,
> > N Ravi
> >
> > > -----Original Message-----
> > > From: Uli Schlachter [mailto:psychon at znc.in]
> > > Sent: Thursday, July 03, 2014 5:18 PM
> > > To: RAVI NANJUNDAPPA; cairo at cairographics.org
> > > Subject: Re: [cairo] [PATCH] xcb: make use of _cairo_surface_is_xcb
> > > to
> > check
> > > for surface type
> > >
> > > On 02.07.2014 10:46, RAVI NANJUNDAPPA wrote:
> > > > Hi,
> > > >
> > > > Please find attached the updated patch incorporated with review
> > > > comments from Uli.
> > > > Thanking him for taking time to review the patch.
> > > > Please help me in reviewing the attached patch.
> > > >
> > > > Thanks and Best Regards,
> > > > N Ravi
> > > >
> > > [...]
> > >
> > > With one minor comment:
> > >
> > > Reviewed-by: Uli Schlachter <psychon at znc.in>
> > >
> > > > diff --git a/src/cairo-xcb-surface.c b/src/cairo-xcb-surface.c
> > > > index
> > > > c900edc..3b0c422 100644
> > > > --- a/src/cairo-xcb-surface.c
> > > > +++ b/src/cairo-xcb-surface.c
> > > > @@ -1432,7 +1432,7 @@ cairo_xcb_surface_set_size (cairo_surface_t
> > > *abstract_surface,
> > > >      }
> > > >
> > > >
> > > > -    if (abstract_surface->type != CAIRO_SURFACE_TYPE_XCB) {
> > > > +    if (!_cairo_surface_is_xcb(abstract_surface)) {
> > > >  	_cairo_surface_set_error (abstract_surface,
> > > >  				  _cairo_error
> > > (CAIRO_STATUS_SURFACE_TYPE_MISMATCH));
> > > >  	return;
> > >
> > > Here (and in the other change in cairo-xcb-surface.c) it should be "(
!"
> > instead
> > > of "(!". Just to match the normal cairo coding style.
> > >
> > > Uli
> > > --
> > > Homophobia - The fear that another man will treat you the way you
> > > treat women.
> 
> > >From a8451cfc2fb2aed2a28ec11510bde0cc94f56d78 Mon Sep 17
> > 00:00:00 2001
> > From: Ravi Nanjundappa <nravi.n at samsung.com>
> > Date: Wed, 2 Jul 2014 14:13:58 +0530
> > Subject: [PATCH] xcb: make use of _cairo_surface_is_xcb to check
> > for surface  type  Introduced a
> > new inline function _cairo_surface_is_xcb() as similar to
> > _cairo_surface_is_image() and used the same to check for xcb
> > surface type 
> > Signed-off-by: Ravi Nanjundappa <nravi.n at samsung.com>
> > ---
> >  src/cairo-xcb-private.h        |   15 +++++++++++++++
> >  src/cairo-xcb-surface-core.c   |    2 +-
> >  src/cairo-xcb-surface-render.c |    2 +-
> >  src/cairo-xcb-surface.c        |    4 ++--
> >  4 files changed, 19 insertions(+), 4 deletions(-)
> >  diff --git a/src/cairo-xcb-private.h
> > b/src/cairo-xcb-private.h index 5f04803..134100a
> > 100644
> > --- a/src/cairo-xcb-private.h +++
> > b/src/cairo-xcb-private.h @@ -267,6 +267,21 @@ enum
> > {    cairo_private extern const
> > cairo_surface_backend_t _cairo_xcb_surface_backend; 
> >  +/** + * _cairo_surface_is_xcb:
> > + * @surface: a #cairo_surface_t + *
> > + * Checks if a surface is an #cairo_xcb_surface_t
> > + * + * Return value: %TRUE if the surface is an
> > xcb surface + **/ +static inline
> > cairo_bool_t +_cairo_surface_is_xcb (const
> > cairo_surface_t *surface) +{
> > +    /* _cairo_surface_nil sets a NULL backend so be safe
*/
> > +    return surface->backend && surface->backend->type ==
> CAIRO_SURFACE_TYPE_XCB;
> > +}
> > +
> >  cairo_private cairo_xcb_connection_t * 
> > _cairo_xcb_connection_get (xcb_connection_t *connection);
> 
> >  diff --git a/src/cairo-xcb-surface-core.c
> > b/src/cairo-xcb-surface-core.c
> > index c608c9a..545fd28 100644
> > --- a/src/cairo-xcb-surface-core.c
> > +++ b/src/cairo-xcb-surface-core.c
> > @@ -406,7 +406,7 @@ _cairo_xcb_surface_pixmap
> (cairo_xcb_surface_t *target,
> >      if (pixmap != NULL && pixmap->screen == target->screen)
> >  	return (cairo_xcb_pixmap_t *) cairo_surface_reference
> (&pixmap->base);
> >  
> > -    if (source->type == CAIRO_SURFACE_TYPE_XCB &&
> > +    if (_cairo_surface_is_xcb(source) &&
> >  	((cairo_xcb_surface_t *) source)->screen == target-
> >screen)
> >      {
> >  	cairo_xcb_surface_t *xcb_source = (cairo_xcb_surface_t *)
> source;
> > diff --git a/src/cairo-xcb-surface-render.c
> > b/src/cairo-xcb-surface-render.c
> > index 75455e5..3f2fc43 100644
> > --- a/src/cairo-xcb-surface-render.c
> > +++ b/src/cairo-xcb-surface-render.c
> > @@ -1154,7 +1154,7 @@ _cairo_xcb_surface_picture
> > (cairo_xcb_surface_t *target,  
> >      if (source->type == CAIRO_SURFACE_TYPE_XCB)
> >      {
> > -	if (source->backend->type == CAIRO_SURFACE_TYPE_XCB)
> {
> > +	if (_cairo_surface_is_xcb(source)) {
> >  	    cairo_xcb_surface_t *xcb = (cairo_xcb_surface_t *)
> source;
> >  	    if (xcb->screen == target->screen && xcb->fallback ==
> NULL) {
> >  		picture = _copy_to_picture ((cairo_xcb_surface_t *)
> source);
> > diff --git a/src/cairo-xcb-surface.c
> > b/src/cairo-xcb-surface.c index c900edc..02e7a19
> > 100644
> > --- a/src/cairo-xcb-surface.c +++
> > b/src/cairo-xcb-surface.c @@ -1432,7 +1432,7 @@
> > cairo_xcb_surface_set_size (cairo_surface_t *abstract_surface,
> >      }
> >  
> >  
> > -    if (abstract_surface->type != CAIRO_SURFACE_TYPE_XCB)
> {
> > +    if ( !_cairo_surface_is_xcb(abstract_surface)) {
> >  	_cairo_surface_set_error (abstract_surface,
> >  				  _cairo_error
> (CAIRO_STATUS_SURFACE_TYPE_MISMATCH));
> >  	return;
> > @@ -1486,7 +1486,7 @@ cairo_xcb_surface_set_drawable
> (cairo_surface_t *abstract_surface,
> >      }
> >  
> >  
> > -    if (abstract_surface->type != CAIRO_SURFACE_TYPE_XCB)
> {
> > +    if ( !_cairo_surface_is_xcb(abstract_surface)) {
> >  	_cairo_surface_set_error (abstract_surface,
> >  				  _cairo_error
> (CAIRO_STATUS_SURFACE_TYPE_MISMATCH));
> >  	return;
> > -- 
> > 1.7.9.5
> > 
> 
> > --
> > cairo mailing list
> > cairo at cairographics.org
> > http://lists.cairographics.org/mailman/listinfo/cairo



More information about the cairo mailing list