summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPaul Gardiner <paulg.artifex@glidos.net>2013-06-28 11:29:51 +0100
committerRobin Watts <robin.watts@artifex.com>2013-06-28 19:36:16 +0100
commit3b1d2b99bd2aa3f02e0e6aa26ec862f28722a011 (patch)
tree0fb16843d644e9749aeb91c0bf27cbae288747ff /include
parent063c7175976213010ce1c3c96c4d4b9703239eb0 (diff)
downloadmupdf-3b1d2b99bd2aa3f02e0e6aa26ec862f28722a011.tar.xz
Ensure altered objects are moved to the incremental xref section
Diffstat (limited to 'include')
-rw-r--r--include/mupdf/pdf/document.h1
-rw-r--r--include/mupdf/pdf/object.h8
-rw-r--r--include/mupdf/pdf/xref.h1
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);