Commit bfbeec5497c04e58e25fa207773ece1d29b67000

Authored by Jay Berkenbilt
1 parent 553ac7f3

Make newly created name/number trees indirect objects

examples/qtest/name-number-tree/out.pdf
@@ -6,31 +6,10 @@ @@ -6,31 +6,10 @@
6 1 0 obj 6 1 0 obj
7 << 7 <<
8 /Example << 8 /Example <<
9 - /NameTree <<  
10 - /Names [  
11 - (B)  
12 - (bishop)  
13 - (N)  
14 - (knight)  
15 - (Q)  
16 - (queen)  
17 - (R)  
18 - (rook)  
19 - ]  
20 - >>  
21 - /NumberTree <<  
22 - /Kids [  
23 - 2 0 R  
24 - 3 0 R  
25 - 4 0 R  
26 - ]  
27 - /Limits [  
28 - 7  
29 - 343  
30 - ]  
31 - >> 9 + /NameTree 2 0 R
  10 + /NumberTree 3 0 R
32 >> 11 >>
33 - /Pages 5 0 R 12 + /Pages 4 0 R
34 /Type /Catalog 13 /Type /Catalog
35 >> 14 >>
36 endobj 15 endobj
@@ -38,6 +17,47 @@ endobj @@ -38,6 +17,47 @@ endobj
38 %% Original object ID: 3 0 17 %% Original object ID: 3 0
39 2 0 obj 18 2 0 obj
40 << 19 <<
  20 + /Names [
  21 + (B)
  22 + (bishop)
  23 + (N)
  24 + (knight)
  25 + (Q)
  26 + (queen)
  27 + (R)
  28 + (rook)
  29 + ]
  30 +>>
  31 +endobj
  32 +
  33 +%% Original object ID: 4 0
  34 +3 0 obj
  35 +<<
  36 + /Kids [
  37 + 5 0 R
  38 + 6 0 R
  39 + 7 0 R
  40 + ]
  41 + /Limits [
  42 + 7
  43 + 343
  44 + ]
  45 +>>
  46 +endobj
  47 +
  48 +%% Original object ID: 2 0
  49 +4 0 obj
  50 +<<
  51 + /Count 0
  52 + /Kids [
  53 + ]
  54 + /Type /Pages
  55 +>>
  56 +endobj
  57 +
  58 +%% Original object ID: 5 0
  59 +5 0 obj
  60 +<<
41 /Limits [ 61 /Limits [
42 7 62 7
43 112 63 112
@@ -73,8 +93,8 @@ endobj @@ -73,8 +93,8 @@ endobj
73 >> 93 >>
74 endobj 94 endobj
75 95
76 -%% Original object ID: 4 0  
77 -3 0 obj 96 +%% Original object ID: 6 0
  97 +6 0 obj
78 << 98 <<
79 /Limits [ 99 /Limits [
80 119 100 119
@@ -111,8 +131,8 @@ endobj @@ -111,8 +131,8 @@ endobj
111 >> 131 >>
112 endobj 132 endobj
113 133
114 -%% Original object ID: 5 0  
115 -4 0 obj 134 +%% Original object ID: 7 0
  135 +7 0 obj
116 << 136 <<
117 /Limits [ 137 /Limits [
118 231 138 231
@@ -151,29 +171,21 @@ endobj @@ -151,29 +171,21 @@ endobj
151 >> 171 >>
152 endobj 172 endobj
153 173
154 -%% Original object ID: 2 0  
155 -5 0 obj  
156 -<<  
157 - /Count 0  
158 - /Kids [  
159 - ]  
160 - /Type /Pages  
161 ->>  
162 -endobj  
163 -  
164 xref 174 xref
165 -0 6 175 +0 8
166 0000000000 65535 f 176 0000000000 65535 f
167 0000000052 00000 n 177 0000000052 00000 n
168 -0000000448 00000 n  
169 -0000000775 00000 n  
170 -0000001130 00000 n  
171 -0000001505 00000 n 178 +0000000194 00000 n
  179 +0000000339 00000 n
  180 +0000000462 00000 n
  181 +0000000551 00000 n
  182 +0000000878 00000 n
  183 +0000001233 00000 n
172 trailer << 184 trailer <<
173 /Root 1 0 R 185 /Root 1 0 R
174 - /Size 6 186 + /Size 8
175 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] 187 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>]
176 >> 188 >>
177 startxref 189 startxref
178 -1567 190 +1581
179 %%EOF 191 %%EOF
libqpdf/QPDFNameTreeObjectHelper.cc
@@ -60,7 +60,8 @@ QPDFNameTreeObjectHelper @@ -60,7 +60,8 @@ QPDFNameTreeObjectHelper
60 QPDFNameTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair) 60 QPDFNameTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair)
61 { 61 {
62 return QPDFNameTreeObjectHelper( 62 return QPDFNameTreeObjectHelper(
63 - QPDFObjectHandle::parse("<< /Names [] >>"), qpdf, auto_repair); 63 + qpdf.makeIndirectObject(
  64 + QPDFObjectHandle::parse("<< /Names [] >>")), qpdf, auto_repair);
64 } 65 }
65 66
66 QPDFNameTreeObjectHelper::iterator::iterator( 67 QPDFNameTreeObjectHelper::iterator::iterator(
libqpdf/QPDFNumberTreeObjectHelper.cc
@@ -56,7 +56,8 @@ QPDFNumberTreeObjectHelper @@ -56,7 +56,8 @@ QPDFNumberTreeObjectHelper
56 QPDFNumberTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair) 56 QPDFNumberTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair)
57 { 57 {
58 return QPDFNumberTreeObjectHelper( 58 return QPDFNumberTreeObjectHelper(
59 - QPDFObjectHandle::parse("<< /Nums [] >>"), qpdf, auto_repair); 59 + qpdf.makeIndirectObject(
  60 + QPDFObjectHandle::parse("<< /Nums [] >>")), qpdf, auto_repair);
60 } 61 }
61 62
62 QPDFNumberTreeObjectHelper::iterator::iterator( 63 QPDFNumberTreeObjectHelper::iterator::iterator(
libtests/qutil.cc
@@ -487,7 +487,7 @@ void read_from_file_test() @@ -487,7 +487,7 @@ void read_from_file_test()
487 Pl_Buffer b2("buffer"); 487 Pl_Buffer b2("buffer");
488 // QUtil::file_provider also exercises QUtil::pipe_file 488 // QUtil::file_provider also exercises QUtil::pipe_file
489 QUtil::file_provider("other-file")(&b2); 489 QUtil::file_provider("other-file")(&b2);
490 - auto buf2 = b2.getBuffer(); 490 + PointerHolder<Buffer> buf2 = b2.getBuffer();
491 assert(buf2->getSize() == size); 491 assert(buf2->getSize() == size);
492 assert(memcmp(buf2->getBuffer(), p, size) == 0); 492 assert(memcmp(buf2->getBuffer(), p, size) == 0);
493 } 493 }