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 6 1 0 obj
7 7 <<
8 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 13 /Type /Catalog
35 14 >>
36 15 endobj
... ... @@ -38,6 +17,47 @@ endobj
38 17 %% Original object ID: 3 0
39 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 61 /Limits [
42 62 7
43 63 112
... ... @@ -73,8 +93,8 @@ endobj
73 93 >>
74 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 99 /Limits [
80 100 119
... ... @@ -111,8 +131,8 @@ endobj
111 131 >>
112 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 137 /Limits [
118 138 231
... ... @@ -151,29 +171,21 @@ endobj
151 171 >>
152 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 174 xref
165   -0 6
  175 +0 8
166 176 0000000000 65535 f
167 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 184 trailer <<
173 185 /Root 1 0 R
174   - /Size 6
  186 + /Size 8
175 187 /ID [<31415926535897932384626433832795><31415926535897932384626433832795>]
176 188 >>
177 189 startxref
178   -1567
  190 +1581
179 191 %%EOF
... ...
libqpdf/QPDFNameTreeObjectHelper.cc
... ... @@ -60,7 +60,8 @@ QPDFNameTreeObjectHelper
60 60 QPDFNameTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair)
61 61 {
62 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 67 QPDFNameTreeObjectHelper::iterator::iterator(
... ...
libqpdf/QPDFNumberTreeObjectHelper.cc
... ... @@ -56,7 +56,8 @@ QPDFNumberTreeObjectHelper
56 56 QPDFNumberTreeObjectHelper::newEmpty(QPDF& qpdf, bool auto_repair)
57 57 {
58 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 63 QPDFNumberTreeObjectHelper::iterator::iterator(
... ...
libtests/qutil.cc
... ... @@ -487,7 +487,7 @@ void read_from_file_test()
487 487 Pl_Buffer b2("buffer");
488 488 // QUtil::file_provider also exercises QUtil::pipe_file
489 489 QUtil::file_provider("other-file")(&b2);
490   - auto buf2 = b2.getBuffer();
  490 + PointerHolder<Buffer> buf2 = b2.getBuffer();
491 491 assert(buf2->getSize() == size);
492 492 assert(memcmp(buf2->getBuffer(), p, size) == 0);
493 493 }
... ...