[cairo] [PATCH 1/2] Don't return NULL to clients when getting image
Chris Wilson
chris at chris-wilson.co.uk
Tue Sep 23 02:07:30 PDT 2014
On Tue, Sep 23, 2014 at 01:27:35AM -0700, Bryce Harrington wrote:
> On Tue, Sep 23, 2014 at 07:26:51AM +0100, Chris Wilson wrote:
> > On Mon, Sep 22, 2014 at 03:50:25PM -0700, Bryce Harrington wrote:
> > > diff --git a/src/win32/cairo-win32-surface.c b/src/win32/cairo-win32-surface.c
> > > index 7cd46fc..f11cbd8 100644
> > > --- a/src/win32/cairo-win32-surface.c
> > > +++ b/src/win32/cairo-win32-surface.c
> > > @@ -188,7 +188,7 @@ cairo_surface_t *
> > > cairo_win32_surface_get_image (cairo_surface_t *surface)
> > > {
> > > if (surface->backend->type != CAIRO_SURFACE_TYPE_WIN32)
> >
> > This is still dangerous - error surfaces have no surface->backend to
> > dereference.
> > -Chris
>
> Good point. Obviously users should not be trying to use error surfaces,
> but I suppose they might not check.
>
> What would you suggest? An assert or NULL check on surface->backend?
> Or introduce error backends?
We use surface->backend == NULL as an indicator that it is an error
surface. See _cairo_surface_is_image() et al.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the cairo
mailing list