From f84a189d5f94250e46d2cbd1a75aba00130e2dd6 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Wed, 21 Jan 2015 16:42:45 +0100 Subject: Add ctx parameter and remove embedded contexts for API regularity. Purge several embedded contexts: Remove embedded context in fz_output. Remove embedded context in fz_stream. Remove embedded context in fz_device. Remove fz_rebind_stream (since it is no longer necessary). Remove embedded context in svg_device. Remove embedded context in XML parser. Add ctx argument to fz_document functions. Remove embedded context in fz_document. Remove embedded context in pdf_document. Remove embedded context in pdf_obj. Make fz_page independent of fz_document in the interface. We shouldn't need to pass the document to all functions handling a page. If a page is tied to the source document, it's redundant; otherwise it's just pointless. Fix reference counting oddity in fz_new_image_from_pixmap. --- include/mupdf/pdf/xref.h | 86 ++++++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 43 deletions(-) (limited to 'include/mupdf/pdf/xref.h') diff --git a/include/mupdf/pdf/xref.h b/include/mupdf/pdf/xref.h index 63580723..c41b0291 100644 --- a/include/mupdf/pdf/xref.h +++ b/include/mupdf/pdf/xref.h @@ -4,17 +4,17 @@ /* pdf_create_object: Allocate a slot in the xref table and return a fresh unused object number. */ -int pdf_create_object(pdf_document *doc); +int pdf_create_object(fz_context *ctx, pdf_document *doc); /* pdf_delete_object: Remove object from xref table, marking the slot as free. */ -void pdf_delete_object(pdf_document *doc, int num); +void pdf_delete_object(fz_context *ctx, pdf_document *doc, int num); /* pdf_update_object: Replace object in xref table with the passed in object. */ -void pdf_update_object(pdf_document *doc, int num, pdf_obj *obj); +void pdf_update_object(fz_context *ctx, pdf_document *doc, int num, pdf_obj *obj); /* pdf_update_stream: Replace stream contents for object in xref table with the passed in buffer. @@ -24,7 +24,7 @@ void pdf_update_object(pdf_document *doc, int num, pdf_obj *obj); the stream dictionary. If storing deflated data, make sure to set the /Filter value to /FlateDecode. */ -void pdf_update_stream(pdf_document *doc, int num, fz_buffer *buf); +void pdf_update_stream(fz_context *ctx, pdf_document *doc, int num, fz_buffer *buf); /* * xref and object / stream api @@ -66,48 +66,48 @@ struct pdf_xref_s pdf_obj *pre_repair_trailer; }; -pdf_xref_entry *pdf_cache_object(pdf_document *doc, int num, int gen); +pdf_xref_entry *pdf_cache_object(fz_context *ctx, pdf_document *doc, int num, int gen); -int pdf_count_objects(pdf_document *doc); -pdf_obj *pdf_resolve_indirect(pdf_obj *ref); -pdf_obj *pdf_load_object(pdf_document *doc, int num, int gen); +int pdf_count_objects(fz_context *ctx, pdf_document *doc); +pdf_obj *pdf_resolve_indirect(fz_context *ctx, pdf_obj *ref); +pdf_obj *pdf_load_object(fz_context *ctx, pdf_document *doc, int num, int gen); -fz_buffer *pdf_load_raw_stream(pdf_document *doc, int num, int gen); -fz_buffer *pdf_load_stream(pdf_document *doc, int num, int gen); -fz_stream *pdf_open_raw_stream(pdf_document *doc, int num, int gen); -fz_stream *pdf_open_stream(pdf_document *doc, int num, int gen); +fz_buffer *pdf_load_raw_stream(fz_context *ctx, pdf_document *doc, int num, int gen); +fz_buffer *pdf_load_stream(fz_context *ctx, pdf_document *doc, int num, int gen); +fz_stream *pdf_open_raw_stream(fz_context *ctx, pdf_document *doc, int num, int gen); +fz_stream *pdf_open_stream(fz_context *ctx, pdf_document *doc, int num, int gen); -fz_stream *pdf_open_inline_stream(pdf_document *doc, pdf_obj *stmobj, int length, fz_stream *chain, fz_compression_params *params); -fz_compressed_buffer *pdf_load_compressed_stream(pdf_document *doc, int num, int gen); -void pdf_load_compressed_inline_image(pdf_document *doc, pdf_obj *dict, int length, fz_stream *cstm, int indexed, fz_image *image); -fz_stream *pdf_open_stream_with_offset(pdf_document *doc, int num, int gen, pdf_obj *dict, int stm_ofs); +fz_stream *pdf_open_inline_stream(fz_context *ctx, pdf_document *doc, pdf_obj *stmobj, int length, fz_stream *chain, fz_compression_params *params); +fz_compressed_buffer *pdf_load_compressed_stream(fz_context *ctx, pdf_document *doc, int num, int gen); +void pdf_load_compressed_inline_image(fz_context *ctx, pdf_document *doc, pdf_obj *dict, int length, fz_stream *cstm, int indexed, fz_image *image); +fz_stream *pdf_open_stream_with_offset(fz_context *ctx, pdf_document *doc, int num, int gen, pdf_obj *dict, int stm_ofs); fz_stream *pdf_open_compressed_stream(fz_context *ctx, fz_compressed_buffer *); -fz_stream *pdf_open_contents_stream(pdf_document *doc, pdf_obj *obj); -fz_buffer *pdf_load_raw_renumbered_stream(pdf_document *doc, int num, int gen, int orig_num, int orig_gen); -fz_buffer *pdf_load_renumbered_stream(pdf_document *doc, int num, int gen, int orig_num, int orig_gen, int *truncated); -fz_stream *pdf_open_raw_renumbered_stream(pdf_document *doc, int num, int gen, int orig_num, int orig_gen); - -pdf_obj *pdf_trailer(pdf_document *doc); -void pdf_set_populating_xref_trailer(pdf_document *doc, pdf_obj *trailer); -int pdf_xref_len(pdf_document *doc); -pdf_xref_entry *pdf_get_populating_xref_entry(pdf_document *doc, int i); -pdf_xref_entry *pdf_get_xref_entry(pdf_document *doc, int i); -void pdf_replace_xref(pdf_document *doc, pdf_xref_entry *entries, int n); -void pdf_xref_ensure_incremental_object(pdf_document *doc, int num); -int pdf_xref_is_incremental(pdf_document *doc, int num); - -void pdf_repair_xref(pdf_document *doc); -void pdf_repair_obj_stms(pdf_document *doc); -pdf_obj *pdf_new_ref(pdf_document *doc, pdf_obj *obj); -void pdf_ensure_solid_xref(pdf_document *doc, int num); -void pdf_mark_xref(pdf_document *doc); -void pdf_clear_xref(pdf_document *doc); -void pdf_clear_xref_to_mark(pdf_document *doc); - -int pdf_repair_obj(pdf_document *doc, pdf_lexbuf *buf, int *stmofsp, int *stmlenp, pdf_obj **encrypt, pdf_obj **id, pdf_obj **page, int *tmpofs); - -pdf_obj *pdf_progressive_advance(pdf_document *doc, int pagenum); - -void pdf_print_xref(pdf_document *); +fz_stream *pdf_open_contents_stream(fz_context *ctx, pdf_document *doc, pdf_obj *obj); +fz_buffer *pdf_load_raw_renumbered_stream(fz_context *ctx, pdf_document *doc, int num, int gen, int orig_num, int orig_gen); +fz_buffer *pdf_load_renumbered_stream(fz_context *ctx, pdf_document *doc, int num, int gen, int orig_num, int orig_gen, int *truncated); +fz_stream *pdf_open_raw_renumbered_stream(fz_context *ctx, pdf_document *doc, int num, int gen, int orig_num, int orig_gen); + +pdf_obj *pdf_trailer(fz_context *ctx, pdf_document *doc); +void pdf_set_populating_xref_trailer(fz_context *ctx, pdf_document *doc, pdf_obj *trailer); +int pdf_xref_len(fz_context *ctx, pdf_document *doc); +pdf_xref_entry *pdf_get_populating_xref_entry(fz_context *ctx, pdf_document *doc, int i); +pdf_xref_entry *pdf_get_xref_entry(fz_context *ctx, pdf_document *doc, int i); +void pdf_replace_xref(fz_context *ctx, pdf_document *doc, pdf_xref_entry *entries, int n); +void pdf_xref_ensure_incremental_object(fz_context *ctx, pdf_document *doc, int num); +int pdf_xref_is_incremental(fz_context *ctx, pdf_document *doc, int num); + +void pdf_repair_xref(fz_context *ctx, pdf_document *doc); +void pdf_repair_obj_stms(fz_context *ctx, pdf_document *doc); +pdf_obj *pdf_new_ref(fz_context *ctx, pdf_document *doc, pdf_obj *obj); +void pdf_ensure_solid_xref(fz_context *ctx, pdf_document *doc, int num); +void pdf_mark_xref(fz_context *ctx, pdf_document *doc); +void pdf_clear_xref(fz_context *ctx, pdf_document *doc); +void pdf_clear_xref_to_mark(fz_context *ctx, pdf_document *doc); + +int pdf_repair_obj(fz_context *ctx, pdf_document *doc, pdf_lexbuf *buf, int *stmofsp, int *stmlenp, pdf_obj **encrypt, pdf_obj **id, pdf_obj **page, int *tmpofs); + +pdf_obj *pdf_progressive_advance(fz_context *ctx, pdf_document *doc, int pagenum); + +void pdf_print_xref(fz_context *ctx, pdf_document *); #endif -- cgit v1.2.3