diff options
Diffstat (limited to 'source/pdf/pdf-resources.c')
-rw-r--r-- | source/pdf/pdf-resources.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/source/pdf/pdf-resources.c b/source/pdf/pdf-resources.c index 55d6603e..82991f6e 100644 --- a/source/pdf/pdf-resources.c +++ b/source/pdf/pdf-resources.c @@ -109,24 +109,17 @@ pdf_insert_image_resource(fz_context *ctx, pdf_document *doc, unsigned char dige * it may be more problematic. */ pdf_obj * -pdf_find_font_resource(fz_context *ctx, pdf_document *doc, int type, int encoding, fz_buffer *item, unsigned char digest[16]) +pdf_find_font_resource(fz_context *ctx, pdf_document *doc, int type, int encoding, fz_font *item, unsigned char digest[16]) { - fz_md5 state; - unsigned char *data; - size_t size; pdf_obj *res; if (!doc->resources.fonts) doc->resources.fonts = fz_new_hash_table(ctx, 4096, 16, -1, pdf_drop_obj_as_void); - size = fz_buffer_storage(ctx, item, &data); + fz_font_digest(ctx, item, digest); - /* Create md5 and see if we have the item in our table */ - fz_md5_init(&state); - fz_md5_update(&state, (unsigned char*)&type, sizeof type); - fz_md5_update(&state, (unsigned char*)&encoding, sizeof encoding); - fz_md5_update(&state, data, size); - fz_md5_final(&state, digest); + digest[0] += type; + digest[1] += encoding; res = fz_hash_find(ctx, doc->resources.fonts, digest); if (res) |