summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-unicode.c
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2018-09-25 14:13:57 +0200
committerSebastian Rasmussen <sebras@gmail.com>2018-10-12 15:50:49 +0800
commita9c1167e3b9696b87977341c2df88607bae79913 (patch)
tree9d2b7c2325222870abf240cda0091518a73a75da /source/pdf/pdf-unicode.c
parent5fe292e6b0466ac6d331ad8ed7f9ea1b47aab579 (diff)
downloadmupdf-a9c1167e3b9696b87977341c2df88607bae79913.tar.xz
Drop CMAP upon exception.
Diffstat (limited to 'source/pdf/pdf-unicode.c')
-rw-r--r--source/pdf/pdf-unicode.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/source/pdf/pdf-unicode.c b/source/pdf/pdf-unicode.c
index 2b61be97..fc4409c4 100644
--- a/source/pdf/pdf-unicode.c
+++ b/source/pdf/pdf-unicode.c
@@ -83,8 +83,12 @@ pdf_load_to_unicode(fz_context *ctx, pdf_document *doc, pdf_font_desc *font,
if (pdf_is_stream(ctx, cmapstm))
{
pdf_cmap *ucs_from_cpt = pdf_load_embedded_cmap(ctx, doc, cmapstm);
- font->to_unicode = pdf_remap_cmap(ctx, font->encoding, ucs_from_cpt);
- pdf_drop_cmap(ctx, ucs_from_cpt);
+ fz_try(ctx)
+ font->to_unicode = pdf_remap_cmap(ctx, font->encoding, ucs_from_cpt);
+ fz_always(ctx)
+ pdf_drop_cmap(ctx, ucs_from_cpt);
+ fz_catch(ctx)
+ fz_rethrow(ctx);
font->size += pdf_cmap_size(ctx, font->to_unicode);
}