From 6fb4c3ae3521fa789aa63b3b37f17336e5b7b617 Mon Sep 17 00:00:00 2001 From: Uli Schlachter Date: Fri, 16 Sep 2011 18:16:01 +0200 Subject: [PATCH] _cairo_clip_get_surface(): Don't lose errors If one of the _cairo_surface_fill() calls failed, this function would stop and return an intermediate result, thus hiding the error that happened. Signed-off-by: Uli Schlachter --- src/cairo-clip-surface.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/cairo-clip-surface.c b/src/cairo-clip-surface.c index e1e931294..244e7f29c 100644 --- a/src/cairo-clip-surface.c +++ b/src/cairo-clip-surface.c @@ -130,6 +130,11 @@ _cairo_clip_get_surface (const cairo_clip_t *clip, copy->path = copy_path; _cairo_clip_destroy (copy); + if (unlikely (status)) { + cairo_surface_destroy (surface); + return _cairo_surface_create_in_error (status); + } + *tx = clip->extents.x; *ty = clip->extents.y; return surface;