summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2016-08-29 16:28:23 +0200
committerTor Andersson <tor.andersson@artifex.com>2016-09-01 15:39:56 +0200
commitf86e9738deb6c6887fb51f2d11e8294cfc1b51cb (patch)
tree90604c5c291f3ff3334720fd1faefcdfd3906858 /include
parent1000326aaaeab4ae17a8f93ef6d28e287fb120cc (diff)
downloadmupdf-f86e9738deb6c6887fb51f2d11e8294cfc1b51cb.tar.xz
Simplify PDF resource caching table handling.
Diffstat (limited to 'include')
-rw-r--r--include/mupdf/fitz/buffer.h5
-rw-r--r--include/mupdf/pdf/document.h6
-rw-r--r--include/mupdf/pdf/resource.h26
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