summaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDF.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2012-07-08 20:19:19 +0200
committerJay Berkenbilt <ejb@ql.org>2012-07-11 05:34:32 +0200
commit8a217eb3a26931453b4f003c6c18ad8569230cf1 (patch)
treedfca77568e0640be6555bfe550a1e334dfb0710e /libqpdf/QPDF.cc
parentaf64668ad190a3f28fbeb233238cb4a76db67d7c (diff)
downloadqpdf-8a217eb3a26931453b4f003c6c18ad8569230cf1.tar.zst
Add concept of reserved objects
QPDFObjectHandle::{new,is,assert}Reserved, QPDF::replaceReserved provide a mechanism to add objects to a PDF file when there are circular references. This is a prerequisite to copying objects from one PDF to another.
Diffstat (limited to 'libqpdf/QPDF.cc')
-rw-r--r--libqpdf/QPDF.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc
index a66b4f15..1c4e5d8d 100644
--- a/libqpdf/QPDF.cc
+++ b/libqpdf/QPDF.cc
@@ -2057,6 +2057,18 @@ QPDF::replaceObject(int objid, int generation, QPDFObjectHandle oh)
}
void
+QPDF::replaceReserved(QPDFObjectHandle reserved,
+ QPDFObjectHandle replacement)
+{
+ QTC::TC("qpdf", "QPDF replaceReserved");
+ reserved.assertReserved();
+ replaceObject(reserved.getObjectID(),
+ reserved.getGeneration(),
+ replacement);
+}
+
+
+void
QPDF::swapObjects(int objid1, int generation1, int objid2, int generation2)
{
// Force objects to be loaded into cache; then swap them in the