diff options
author | Robin Watts <robin.watts@artifex.com> | 2016-05-30 19:07:32 +0100 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2016-05-30 20:07:48 +0100 |
commit | 61cb26c84a9c542c537c172b14b9c4ebed5b763a (patch) | |
tree | 4e6bec323e61b6b9c2e20d7ee51ce849aff913fa /source/fitz | |
parent | 2ba534c2491368ce2c76fc715ad4bd5af4eee22d (diff) | |
download | mupdf-61cb26c84a9c542c537c172b14b9c4ebed5b763a.tar.xz |
Avoid fz_font pulling harfbuzz in.
We store an hb_font in every font, and currently have fz_drop_font
know to call harfbuzz to destroy it. This causes harfbuzz to be
included even in builds that never use it.
We improve this situation by storing both an hb_font, and a
function pointer to destroy it within fz_font. This costs us
an extra pointer per fz_font, but solves the problem.
Diffstat (limited to 'source/fitz')
-rw-r--r-- | source/fitz/font.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source/fitz/font.c b/source/fitz/font.c index 07476235..6cc80d0e 100644 --- a/source/fitz/font.c +++ b/source/fitz/font.c @@ -156,9 +156,12 @@ fz_drop_font(fz_context *ctx, fz_font *font) fz_free(ctx, font->bbox_table); fz_free(ctx, font->width_table); fz_free(ctx, font->advance_cache); - hb_lock(ctx); - hb_font_destroy(font->hb_font); - hb_unlock(ctx); + if (font->hb_destroy && font->hb_font) + { + hb_lock(ctx); + font->hb_destroy(font->hb_font); + hb_unlock(ctx); + } fz_free(ctx, font); } |