summaryrefslogtreecommitdiff
path: root/src/cairo-traps-compositor.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-02-22 15:57:36 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-02-22 15:57:36 +0000
commit1b1b1ecc6f4343295aad177d127c95af0a5e8611 (patch)
tree65229edbb4121f47ca8d3eff408b2ce709f1228a /src/cairo-traps-compositor.c
parente5cb567f5d7c87faf09e240fc1649eebf0b1f0f6 (diff)
downloadcairo-1b1b1ecc6f4343295aad177d127c95af0a5e8611.tar.gz
traps-compositor: add a missing release()
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-traps-compositor.c')
-rw-r--r--src/cairo-traps-compositor.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c
index cc2235eeb..146089d02 100644
--- a/src/cairo-traps-compositor.c
+++ b/src/cairo-traps-compositor.c
@@ -261,7 +261,7 @@ __clip_to_surface (const cairo_traps_compositor_t *compositor,
CAIRO_COLOR_TRANSPARENT,
&clear);
if (unlikely (status))
- goto error;
+ goto error_release;
status = compositor->composite_traps (mask, CAIRO_OPERATOR_ADD, src,
src_x, src_y,
@@ -269,14 +269,17 @@ __clip_to_surface (const cairo_traps_compositor_t *compositor,
extents,
antialias, &traps);
if (unlikely (status))
- goto error;
+ goto error_release;
+ compositor->release (mask);
*surface = mask;
out:
cairo_surface_destroy (src);
_cairo_traps_fini (&traps);
return status;
+error_release:
+ compositor->release (mask);
error:
cairo_surface_destroy (mask);
goto out;