summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-type3.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf/pdf-type3.c')
-rw-r--r--source/pdf/pdf-type3.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/source/pdf/pdf-type3.c b/source/pdf/pdf-type3.c
index d136b6f5..d4c9b31a 100644
--- a/source/pdf/pdf-type3.c
+++ b/source/pdf/pdf-type3.c
@@ -31,6 +31,17 @@ pdf_load_type3_font(pdf_document *doc, pdf_obj *rdb, pdf_obj *dict)
fz_var(fontdesc);
+ /* Make a new type3 font entry in the document */
+ if (doc->num_type3_fonts == doc->max_type3_fonts)
+ {
+ int new_max = doc->max_type3_fonts * 2;
+
+ if (new_max == 0)
+ new_max = 4;
+ doc->type3_fonts = fz_resize_array(doc->ctx, doc->type3_fonts, new_max, sizeof(*doc->type3_fonts));
+ doc->max_type3_fonts = new_max;
+ }
+
fz_try(ctx)
{
obj = pdf_dict_gets(dict, "Name");
@@ -163,6 +174,9 @@ pdf_load_type3_font(pdf_document *doc, pdf_obj *rdb, pdf_obj *dict)
pdf_drop_font(ctx, fontdesc);
fz_rethrow_message(ctx, "cannot load type3 font (%d %d R)", pdf_to_num(dict), pdf_to_gen(dict));
}
+
+ doc->type3_fonts[doc->num_type3_fonts++] = fz_keep_font(ctx, fontdesc->font);
+
return fontdesc;
}