summaryrefslogtreecommitdiff
path: root/source/fitz/font.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2013-11-11 14:37:03 +0100
committerTor Andersson <tor.andersson@artifex.com>2013-11-11 16:12:45 +0100
commita2c945506ea2a2b58edbde84124094c6b4f69eac (patch)
tree3bcb66ff73e4323621f21a622a8049b71ee9a58f /source/fitz/font.c
parentcdc3d601bfe1f16ea96f35526644eaf53415be80 (diff)
downloadmupdf-a2c945506ea2a2b58edbde84124094c6b4f69eac.tar.xz
Add fz_new_font_from_buffer function.
Use fz_buffer to wrap and reference count data used in font.
Diffstat (limited to 'source/fitz/font.c')
-rw-r--r--source/fitz/font.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/source/fitz/font.c b/source/fitz/font.c
index 06ecab76..d78ccd6d 100644
--- a/source/fitz/font.c
+++ b/source/fitz/font.c
@@ -31,8 +31,7 @@ fz_new_font(fz_context *ctx, char *name, int use_glyph_bbox, int glyph_count)
font->ft_italic = 0;
font->ft_hint = 0;
- font->ft_file = NULL;
- font->ft_data = NULL;
+ font->ft_buffer = NULL;
font->ft_size = 0;
font->t3matrix = fz_identity;
@@ -151,8 +150,7 @@ fz_drop_font(fz_context *ctx, fz_font *font)
fz_drop_freetype(ctx);
}
- fz_free(ctx, font->ft_file);
- fz_free(ctx, font->ft_data);
+ fz_drop_buffer(ctx, font->ft_buffer);
fz_free(ctx, font->bbox_table);
fz_free(ctx, font->width_table);
fz_free(ctx, font);
@@ -365,6 +363,14 @@ fz_new_font_from_memory(fz_context *ctx, char *name, unsigned char *data, int le
return font;
}
+fz_font *
+fz_new_font_from_buffer(fz_context *ctx, char *name, fz_buffer *buffer, int index, int use_glyph_bbox)
+{
+ fz_font *font = fz_new_font_from_memory(ctx, name, buffer->data, buffer->len, index, use_glyph_bbox);
+ font->ft_buffer = fz_keep_buffer(ctx, buffer); /* remember buffer so we can drop it when we free the font */
+ return font;
+}
+
static fz_matrix *
fz_adjust_ft_glyph_width(fz_context *ctx, fz_font *font, int gid, fz_matrix *trm)
{