From 7d2407571d8c8851b67af5ddd0429467c7048b16 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Wed, 13 Jun 2018 11:48:07 +0200 Subject: Remember the md5 digest in the fz_font struct. --- source/fitz/font-imp.h | 4 ++++ source/fitz/font.c | 12 ++++++++++++ 2 files changed, 16 insertions(+) (limited to 'source/fitz') diff --git a/source/fitz/font-imp.h b/source/fitz/font-imp.h index 74a25ccf..f121923c 100644 --- a/source/fitz/font-imp.h +++ b/source/fitz/font-imp.h @@ -39,6 +39,10 @@ struct fz_font_s /* cached encoding lookup */ uint16_t *encoding_cache[256]; + + /* cached md5sum for caching */ + int has_digest; + unsigned char digest[16]; }; #endif diff --git a/source/fitz/font.c b/source/fitz/font.c index 2075306e..c39174ee 100644 --- a/source/fitz/font.c +++ b/source/fitz/font.c @@ -1814,3 +1814,15 @@ fz_shaper_data_t *fz_font_shaper_data(fz_context *ctx, fz_font *font) { return font ? &font->shaper_data : NULL; } + +void fz_font_digest(fz_context *ctx, fz_font *font, unsigned char digest[16]) +{ + if (!font->buffer) + fz_throw(ctx, FZ_ERROR_GENERIC, "no font file for digest"); + if (!font->has_digest) + { + fz_md5_buffer(ctx, font->buffer, font->digest); + font->has_digest = 1; + } + memcpy(digest, font->digest, 16); +} -- cgit v1.2.3