summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2021-02-08 00:49:30 +0100
committerJay Berkenbilt <ejb@ql.org>2021-02-08 12:49:56 +0100
commitbfbeec5497c04e58e25fa207773ece1d29b67000 (patch)
treef81d3e8856f51130d4bb31f6e66de445f8f859fe
parent553ac7f353c7043806ec0de70d8630f5cd0a7bb8 (diff)
downloadqpdf-bfbeec5497c04e58e25fa207773ece1d29b67000.tar.zst
Make newly created name/number trees indirect objects
-rw-r--r--examples/qtest/name-number-tree/out.pdf102
-rw-r--r--libqpdf/QPDFNameTreeObjectHelper.cc3
-rw-r--r--libqpdf/QPDFNumberTreeObjectHelper.cc3
-rw-r--r--libtests/qutil.cc2
4 files changed, 62 insertions, 48 deletions
diff --git a/examples/qtest/name-number-tree/out.pdf b/examples/qtest/name-number-tree/out.pdf
index 69496619..8accb654 100644
--- a/examples/qtest/name-number-tree/out.pdf
+++ b/examples/qtest/name-number-tree/out.pdf
@@ -6,31 +6,10 @@
1 0 obj
<<
/Example <<
- /NameTree <<
- /Names [
- (B)
- (bishop)
- (N)
- (knight)
- (Q)
- (queen)
- (R)
- (rook)
- ]
- >>
- /NumberTree <<
- /Kids [
- 2 0 R
- 3 0 R
- 4 0 R
- ]
- /Limits [
- 7
- 343
- ]
- >>
+ /NameTree 2 0 R
+ /NumberTree 3 0 R
>>
- /Pages 5 0 R
+ /Pages 4 0 R
/Type /Catalog
>>
endobj
@@ -38,6 +17,47 @@ endobj
%% Original object ID: 3 0
2 0 obj
<<
+ /Names [
+ (B)
+ (bishop)
+ (N)
+ (knight)
+ (Q)
+ (queen)
+ (R)
+ (rook)
+ ]
+>>
+endobj
+
+%% Original object ID: 4 0
+3 0 obj
+<<
+ /Kids [
+ 5 0 R
+ 6 0 R
+ 7 0 R
+ ]
+ /Limits [
+ 7
+ 343
+ ]
+>>
+endobj
+
+%% Original object ID: 2 0
+4 0 obj
+<<
+ /Count 0
+ /Kids [
+ ]
+ /Type /Pages
+>>
+endobj
+
+%% Original object ID: 5 0
+5 0 obj
+<<
/Limits [
7
112
@@ -73,8 +93,8 @@ endobj
>>
endobj
-%% Original object ID: 4 0
-3 0 obj
+%% Original object ID: 6 0
+6 0 obj
<<
/Limits [
119
@@ -111,8 +131,8 @@ endobj
>>
endobj
-%% Original object ID: 5 0
-4 0 obj
+%% Original object ID: 7 0
+7 0 obj
<<
/Limits [
231
@@ -151,29 +171,21 @@ endobj
>>
endobj
-%% Original object ID: 2 0
-5 0 obj
-<<
- /Count 0
- /Kids [
- ]
- /Type /Pages
->>
-endobj
-
xref
-0 6
+0 8
0000000000 65535 f
0000000052 00000 n
-0000000448 00000 n
-0000000775 00000 n
-0000001130 00000 n
-0000001505 00000 n
+0000000194 00000 n
+0000000339 00000 n
+0000000462 00000 n
+0000000551 00000 n
+0000000878 00000 n
+0000001233 00000 n
trailer <<
/Root 1 0 R
- /Size 6
+ /Size 8
/ID [<31415926535897932384626433832795><31415926535897932384626433832795>]
>>
startxref
-1567
+1581
%%EOF
diff --git a/libqpdf/QPDFNameTreeObjectHelper.cc b/libqpdf/QPDFNameTreeObjectHelper.cc
index 1dc7f205..9b96cefa 100644
--- a/libqpdf/QPDFNameTreeObjectHelper.cc
+++ b/libqpdf/QPDFNameTreeObjectHelper.cc
@@ -60,7 +60,8 @@ QPDFNameTreeObjectHelper
QPDFNameTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair)
{
return QPDFNameTreeObjectHelper(
- QPDFObjectHandle::parse("<< /Names [] >>"), qpdf, auto_repair);
+ qpdf.makeIndirectObject(
+ QPDFObjectHandle::parse("<< /Names [] >>")), qpdf, auto_repair);
}
QPDFNameTreeObjectHelper::iterator::iterator(
diff --git a/libqpdf/QPDFNumberTreeObjectHelper.cc b/libqpdf/QPDFNumberTreeObjectHelper.cc
index a66a5f48..be2f2f16 100644
--- a/libqpdf/QPDFNumberTreeObjectHelper.cc
+++ b/libqpdf/QPDFNumberTreeObjectHelper.cc
@@ -56,7 +56,8 @@ QPDFNumberTreeObjectHelper
QPDFNumberTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair)
{
return QPDFNumberTreeObjectHelper(
- QPDFObjectHandle::parse("<< /Nums [] >>"), qpdf, auto_repair);
+ qpdf.makeIndirectObject(
+ QPDFObjectHandle::parse("<< /Nums [] >>")), qpdf, auto_repair);
}
QPDFNumberTreeObjectHelper::iterator::iterator(
diff --git a/libtests/qutil.cc b/libtests/qutil.cc
index bc12a6ea..94454374 100644
--- a/libtests/qutil.cc
+++ b/libtests/qutil.cc
@@ -487,7 +487,7 @@ void read_from_file_test()
Pl_Buffer b2("buffer");
// QUtil::file_provider also exercises QUtil::pipe_file
QUtil::file_provider("other-file")(&b2);
- auto buf2 = b2.getBuffer();
+ PointerHolder<Buffer> buf2 = b2.getBuffer();
assert(buf2->getSize() == size);
assert(memcmp(buf2->getBuffer(), p, size) == 0);
}