summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2018-09-25 22:29:38 +0800
committerSebastian Rasmussen <sebras@gmail.com>2018-10-12 15:50:49 +0800
commit886f91221527e8cb706d8e1824b4d4cfa8c86505 (patch)
tree976c651f97e25ccd0d3c3e409d13a41734631b26 /source
parentad9daf38f0f59a04fe5eebff286b5d3ffc8c9f1a (diff)
downloadmupdf-886f91221527e8cb706d8e1824b4d4cfa8c86505.tar.xz
Drop separation pixmap upon exception.
Diffstat (limited to 'source')
-rw-r--r--source/fitz/separation.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/source/fitz/separation.c b/source/fitz/separation.c
index 8b86a128..e8d143e2 100644
--- a/source/fitz/separation.c
+++ b/source/fitz/separation.c
@@ -230,7 +230,7 @@ fz_pixmap *
fz_clone_pixmap_area_with_different_seps(fz_context *ctx, fz_pixmap *src, const fz_irect *bbox, fz_colorspace *dcs, fz_separations *dseps, const fz_color_params *color_params, fz_default_colorspaces *default_cs)
{
fz_irect local_bbox;
- fz_pixmap *dst;
+ fz_pixmap *dst, *pix;
if (bbox == NULL)
{
@@ -247,7 +247,15 @@ fz_clone_pixmap_area_with_different_seps(fz_context *ctx, fz_pixmap *src, const
else
dst->flags &= ~FZ_PIXMAP_FLAG_INTERPOLATE;
- return fz_copy_pixmap_area_converting_seps(ctx, dst, src, color_params, NULL, default_cs);
+ fz_try(ctx)
+ pix = fz_copy_pixmap_area_converting_seps(ctx, dst, src, color_params, NULL, default_cs);
+ fz_catch(ctx)
+ {
+ fz_drop_pixmap(ctx, dst);
+ fz_rethrow(ctx);
+ }
+
+ return pix;
}
/*