summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-font.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2016-02-24 17:48:43 +0100
committerTor Andersson <tor.andersson@artifex.com>2016-02-29 15:53:04 +0100
commitfc9dbdec311d643fe020557f5aa0bde045b27186 (patch)
tree57affd2cc1310b0a596588b8c44135e38df6b804 /source/pdf/pdf-font.c
parent2220ffb30ea8773102e9ca0bce4e3b7e31720627 (diff)
downloadmupdf-fc9dbdec311d643fe020557f5aa0bde045b27186.tar.xz
Remove pdf_res struct. Use pdf_obj indirect references directly.
Fix refcounting bugs.
Diffstat (limited to 'source/pdf/pdf-font.c')
-rw-r--r--source/pdf/pdf-font.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/source/pdf/pdf-font.c b/source/pdf/pdf-font.c
index ee3d7b9d..8fc01f0d 100644
--- a/source/pdf/pdf-font.c
+++ b/source/pdf/pdf-font.c
@@ -2122,12 +2122,11 @@ pdf_add_cid_to_unicode(fz_context *ctx, pdf_document *doc, pdf_font_desc *fontde
* If this is coming from a source file, we have source_font so that we can
* possibly get any width information that may have been embedded in the PDF
* W name tag (or W2 if vertical text) */
-pdf_res*
+pdf_obj *
pdf_add_cid_font_res(fz_context *ctx, pdf_document *doc, fz_buffer *buffer, fz_font *source_font)
{
pdf_obj *fobj = NULL;
pdf_obj *fref = NULL;
- pdf_res *fres = NULL;
pdf_obj *obj_desc_ref = NULL;
pdf_obj *obj_tounicode_ref = NULL;
pdf_obj *obj_array = NULL;
@@ -2140,7 +2139,6 @@ pdf_add_cid_font_res(fz_context *ctx, pdf_document *doc, fz_buffer *buffer, fz_f
fz_var(fobj);
fz_var(fref);
- fz_var(fres);
fz_var(obj_desc_ref);
fz_var(obj_tounicode_ref);
fz_var(fontdesc);
@@ -2153,8 +2151,8 @@ pdf_add_cid_font_res(fz_context *ctx, pdf_document *doc, fz_buffer *buffer, fz_f
/* Before we add this font as a resource check if the same font
* already exists in our resources for this doc. If yes, then
* hand back that reference */
- fres = pdf_find_resource(ctx, doc, doc->resources->font, buffer, digest);
- if (fres == NULL)
+ fref = pdf_find_resource(ctx, doc, doc->resources->font, buffer, digest);
+ if (fref == NULL)
{
/* Set up desc, width, and font file */
font = fz_new_font_from_memory(ctx, NULL, buffer->data, buffer->len, 0, 1);
@@ -2188,12 +2186,11 @@ pdf_add_cid_font_res(fz_context *ctx, pdf_document *doc, fz_buffer *buffer, fz_f
fref = pdf_new_ref(ctx, doc, fobj);
/* Add ref to our font resource hash table. */
- fres = pdf_insert_resource(ctx, doc->resources->font, digest, fref);
+ fref = pdf_insert_resource(ctx, doc->resources->font, digest, fref);
}
}
fz_always(ctx)
{
- fz_drop_font(ctx, font);
if (fontdesc != NULL)
fontdesc->font = NULL;
pdf_drop_font(ctx, fontdesc);
@@ -2209,16 +2206,15 @@ pdf_add_cid_font_res(fz_context *ctx, pdf_document *doc, fz_buffer *buffer, fz_f
pdf_drop_obj(ctx, fref);
fz_rethrow(ctx);
}
- return fres;
+ return fref;
}
/* Creates simple font */
-pdf_res*
+pdf_obj *
pdf_add_simple_font_res(fz_context *ctx, pdf_document *doc, fz_buffer *buffer)
{
pdf_obj *fobj = NULL;
pdf_obj *fref = NULL;
- pdf_res *fres = NULL;
pdf_obj *fstr_ref = NULL;
pdf_obj *fdes_ref = NULL;
pdf_obj *fwidth_ref = NULL;
@@ -2233,7 +2229,6 @@ pdf_add_simple_font_res(fz_context *ctx, pdf_document *doc, fz_buffer *buffer)
fz_var(fobj);
fz_var(fref);
- fz_var(fres);
fz_var(fstr_ref);
fz_var(fdes_ref);
fz_var(fwidth_ref);
@@ -2246,8 +2241,8 @@ pdf_add_simple_font_res(fz_context *ctx, pdf_document *doc, fz_buffer *buffer)
/* Before we add this font as a resource check if the same font
* already exists in our resources for this doc. If yes, then
* hand back that reference */
- fres = pdf_find_resource(ctx, doc, doc->resources->font, buffer, digest);
- if (fres == NULL)
+ fref = pdf_find_resource(ctx, doc, doc->resources->font, buffer, digest);
+ if (fref == NULL)
{
/* Set up desc, width, and font file */
fobj = pdf_new_dict(ctx, doc, 3);
@@ -2297,12 +2292,11 @@ pdf_add_simple_font_res(fz_context *ctx, pdf_document *doc, fz_buffer *buffer)
fref = pdf_new_ref(ctx, doc, fobj);
/* Add ref to our font resource hash table. */
- fres = pdf_insert_resource(ctx, doc->resources->font, digest, fref);
+ fref = pdf_insert_resource(ctx, doc->resources->font, digest, fref);
}
}
fz_always(ctx)
{
- fz_drop_font(ctx, font);
if (fontdesc != NULL)
fontdesc->font = NULL;
pdf_drop_font(ctx, fontdesc);
@@ -2318,7 +2312,7 @@ pdf_add_simple_font_res(fz_context *ctx, pdf_document *doc, fz_buffer *buffer)
pdf_drop_obj(ctx, fref);
fz_rethrow(ctx);
}
- return fres;
+ return fref;
}
int