summaryrefslogtreecommitdiff
path: root/source/fitz
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2016-05-30 19:07:32 +0100
committerRobin Watts <robin.watts@artifex.com>2016-05-30 20:07:48 +0100
commit61cb26c84a9c542c537c172b14b9c4ebed5b763a (patch)
tree4e6bec323e61b6b9c2e20d7ee51ce849aff913fa /source/fitz
parent2ba534c2491368ce2c76fc715ad4bd5af4eee22d (diff)
downloadmupdf-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.c9
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);
}