summaryrefslogtreecommitdiff
path: root/source/fitz
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-06-13 11:48:07 +0200
committerTor Andersson <tor.andersson@artifex.com>2018-06-22 16:23:34 +0200
commit7d2407571d8c8851b67af5ddd0429467c7048b16 (patch)
treec7c128a56f3a6768b783c1b805c122b26f54ba07 /source/fitz
parent61f58980aa353dda3bdb9b563b87cd0e8741d0f0 (diff)
downloadmupdf-7d2407571d8c8851b67af5ddd0429467c7048b16.tar.xz
Remember the md5 digest in the fz_font struct.
Diffstat (limited to 'source/fitz')
-rw-r--r--source/fitz/font-imp.h4
-rw-r--r--source/fitz/font.c12
2 files changed, 16 insertions, 0 deletions
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);
+}