diff options
author | Paul Gardiner <paulg.artifex@glidos.net> | 2013-06-28 11:29:51 +0100 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2013-06-28 19:36:16 +0100 |
commit | 3b1d2b99bd2aa3f02e0e6aa26ec862f28722a011 (patch) | |
tree | 0fb16843d644e9749aeb91c0bf27cbae288747ff /include | |
parent | 063c7175976213010ce1c3c96c4d4b9703239eb0 (diff) | |
download | mupdf-3b1d2b99bd2aa3f02e0e6aa26ec862f28722a011.tar.xz |
Ensure altered objects are moved to the incremental xref section
Diffstat (limited to 'include')
-rw-r--r-- | include/mupdf/pdf/document.h | 1 | ||||
-rw-r--r-- | include/mupdf/pdf/object.h | 8 | ||||
-rw-r--r-- | include/mupdf/pdf/xref.h | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/include/mupdf/pdf/document.h b/include/mupdf/pdf/document.h index 5071f4d3..736ae4e5 100644 --- a/include/mupdf/pdf/document.h +++ b/include/mupdf/pdf/document.h @@ -185,6 +185,7 @@ struct pdf_document_s int num_xref_sections; pdf_xref *xref_sections; int xref_altered; + int freeze_updates; int page_len; int page_cap; diff --git a/include/mupdf/pdf/object.h b/include/mupdf/pdf/object.h index ad19779f..88d5c24b 100644 --- a/include/mupdf/pdf/object.h +++ b/include/mupdf/pdf/object.h @@ -95,6 +95,14 @@ void pdf_dict_del(pdf_obj *dict, pdf_obj *key); void pdf_dict_dels(pdf_obj *dict, const char *key); void pdf_sort_dict(pdf_obj *dict); +/* + Recurse through the object structure setting the node's parent_num to num. + parent_num is used when a subobject is to be changed during a document edit. + The whole containing hierarchy is moved to the incremental xref section, so + to be later written out as an incremental file update. +*/ +void pdf_set_objects_parent_num(pdf_obj *obj, int num); + int pdf_fprint_obj(FILE *fp, pdf_obj *obj, int tight); #ifndef NDEBUG diff --git a/include/mupdf/pdf/xref.h b/include/mupdf/pdf/xref.h index ca9bfafe..c0544717 100644 --- a/include/mupdf/pdf/xref.h +++ b/include/mupdf/pdf/xref.h @@ -75,6 +75,7 @@ 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); void pdf_repair_xref(pdf_document *doc, pdf_lexbuf *buf); void pdf_repair_obj_stms(pdf_document *doc); |