diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2016-08-29 16:28:23 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2016-09-01 15:39:56 +0200 |
commit | f86e9738deb6c6887fb51f2d11e8294cfc1b51cb (patch) | |
tree | 90604c5c291f3ff3334720fd1faefcdfd3906858 /include | |
parent | 1000326aaaeab4ae17a8f93ef6d28e287fb120cc (diff) | |
download | mupdf-f86e9738deb6c6887fb51f2d11e8294cfc1b51cb.tar.xz |
Simplify PDF resource caching table handling.
Diffstat (limited to 'include')
-rw-r--r-- | include/mupdf/fitz/buffer.h | 5 | ||||
-rw-r--r-- | include/mupdf/pdf/document.h | 6 | ||||
-rw-r--r-- | include/mupdf/pdf/resource.h | 26 |
3 files changed, 13 insertions, 24 deletions
diff --git a/include/mupdf/fitz/buffer.h b/include/mupdf/fitz/buffer.h index a616fa86..40e46e73 100644 --- a/include/mupdf/fitz/buffer.h +++ b/include/mupdf/fitz/buffer.h @@ -138,4 +138,9 @@ size_t fz_buffer_printf(fz_context *ctx, fz_buffer *buffer, const char *fmt, ... size_t fz_buffer_vprintf(fz_context *ctx, fz_buffer *buffer, const char *fmt, va_list args); void fz_buffer_print_pdf_string(fz_context *ctx, fz_buffer *buffer, const char *text); +/* + fz_md5_buffer: create MD5 digest of buffer contents. +*/ +void fz_md5_buffer(fz_context *ctx, fz_buffer *buffer, unsigned char digest[16]); + #endif diff --git a/include/mupdf/pdf/document.h b/include/mupdf/pdf/document.h index 8a8fdd40..aabf05f9 100644 --- a/include/mupdf/pdf/document.h +++ b/include/mupdf/pdf/document.h @@ -12,7 +12,6 @@ typedef struct pdf_annot_s pdf_annot; typedef struct pdf_widget_s pdf_widget; typedef struct pdf_hotspot_s pdf_hotspot; typedef struct pdf_js_s pdf_js; -typedef struct pdf_resource_tables_s pdf_resource_tables; enum { @@ -266,7 +265,10 @@ struct pdf_document_s int max_type3_fonts; fz_font **type3_fonts; - pdf_resource_tables *resources; + struct { + fz_hash_table *images; + fz_hash_table *fonts; + } resources; }; /* diff --git a/include/mupdf/pdf/resource.h b/include/mupdf/pdf/resource.h index e0290247..f9f99da6 100644 --- a/include/mupdf/pdf/resource.h +++ b/include/mupdf/pdf/resource.h @@ -16,29 +16,11 @@ void pdf_remove_item(fz_context *ctx, fz_store_drop_fn *drop, pdf_obj *key); * the data, enabling rapid lookup. */ -typedef struct pdf_res_table_s pdf_res_table; -typedef pdf_obj *(pdf_res_search_fn)(fz_context *ctx, pdf_document *doc, pdf_res_table *list, - void *item, unsigned char md5[16]); - -struct pdf_res_table_s -{ - fz_hash_table *hash; - pdf_res_search_fn *search; -}; - -struct pdf_resource_tables_s -{ - pdf_res_table *image; - pdf_res_table *font; - pdf_res_table *color; - pdf_res_table *pattern; - pdf_res_table *shading; -}; - -pdf_obj *pdf_find_resource(fz_context *ctx, pdf_document *doc, pdf_res_table *table, void *item, unsigned char md5[16]); -void pdf_init_resource_tables(fz_context *ctx, pdf_document *doc); +pdf_obj *pdf_find_font_resource(fz_context *ctx, pdf_document *doc, fz_buffer *item, unsigned char md5[16]); +pdf_obj *pdf_insert_font_resource(fz_context *ctx, pdf_document *doc, unsigned char md5[16], pdf_obj *obj); +pdf_obj *pdf_find_image_resource(fz_context *ctx, pdf_document *doc, fz_image *item, unsigned char md5[16]); +pdf_obj *pdf_insert_image_resource(fz_context *ctx, pdf_document *doc, unsigned char md5[16], pdf_obj *obj); void pdf_drop_resource_tables(fz_context *ctx, pdf_document *doc); -pdf_obj *pdf_insert_resource(fz_context *ctx, pdf_res_table *table, void *key, pdf_obj *obj); /* * Functions, Colorspaces, Shadings and Images |