Commit b776dcd2d3180becef8f58158873a91004e324ee

Authored by Jay Berkenbilt
1 parent 8d229e07

Clean up some private functions

... ... @@ -16,9 +16,6 @@ Do these things next time we have to break binary compatibility
16 16 * Rename QUtil::strcasecmp since strcasecmp is a macro on some
17 17 platforms. See #242.
18 18  
19   - * Collapse QPDF::pushInheritedAttributesToPageInternal* and
20   - QPDF::getAllPagesInternal* into QPDF::*Internal.
21   -
22 19 * Get rid of the version of QPDF::copyForeignObject with the bool
23 20 unused parameter.
24 21  
... ...
include/qpdf/QPDF.hh
... ... @@ -898,14 +898,9 @@ class QPDF
898 898 // methods to support page handling
899 899  
900 900 void getAllPagesInternal(QPDFObjectHandle cur_pages,
901   - std::vector<QPDFObjectHandle>& result);
902   - void getAllPagesInternal2(QPDFObjectHandle cur_pages,
903   - std::vector<QPDFObjectHandle>& result,
904   - std::set<QPDFObjGen>& visited);
905   - void getAllPagesInternal3(QPDFObjectHandle cur_pages,
906   - std::vector<QPDFObjectHandle>& result,
907   - std::set<QPDFObjGen>& visited,
908   - std::set<QPDFObjGen>& seen);
  901 + std::vector<QPDFObjectHandle>& result,
  902 + std::set<QPDFObjGen>& visited,
  903 + std::set<QPDFObjGen>& seen);
909 904 void insertPage(QPDFObjectHandle newpage, int pos);
910 905 int findPage(QPDFObjGen const& og);
911 906 int findPage(QPDFObjectHandle& page);
... ... @@ -1293,11 +1288,6 @@ class QPDF
1293 1288 QPDFObjectHandle,
1294 1289 std::map<std::string, std::vector<QPDFObjectHandle> >&,
1295 1290 std::vector<QPDFObjectHandle>& all_pages,
1296   - bool allow_changes, bool warn_skipped_keys);
1297   - void pushInheritedAttributesToPageInternal2(
1298   - QPDFObjectHandle,
1299   - std::map<std::string, std::vector<QPDFObjectHandle> >&,
1300   - std::vector<QPDFObjectHandle>& all_pages,
1301 1291 bool allow_changes, bool warn_skipped_keys,
1302 1292 std::set<QPDFObjGen>& visited);
1303 1293 void updateObjectMaps(ObjUser const& ou, QPDFObjectHandle oh);
... ...
libqpdf/QPDF_optimization.cc
... ... @@ -163,9 +163,11 @@ QPDF::pushInheritedAttributesToPage(bool allow_changes, bool warn_skipped_keys)
163 163 // Pages nodes that contain values for them.
164 164 std::map<std::string, std::vector<QPDFObjectHandle> > key_ancestors;
165 165 this->m->all_pages.clear();
  166 + std::set<QPDFObjGen> visited;
166 167 pushInheritedAttributesToPageInternal(
167 168 this->m->trailer.getKey("/Root").getKey("/Pages"),
168   - key_ancestors, this->m->all_pages, allow_changes, warn_skipped_keys);
  169 + key_ancestors, this->m->all_pages, allow_changes, warn_skipped_keys,
  170 + visited);
169 171 if (! key_ancestors.empty())
170 172 {
171 173 throw std::logic_error(
... ... @@ -180,19 +182,6 @@ QPDF::pushInheritedAttributesToPageInternal(
180 182 QPDFObjectHandle cur_pages,
181 183 std::map<std::string, std::vector<QPDFObjectHandle> >& key_ancestors,
182 184 std::vector<QPDFObjectHandle>& pages,
183   - bool allow_changes, bool warn_skipped_keys)
184   -{
185   - std::set<QPDFObjGen> visited;
186   - pushInheritedAttributesToPageInternal2(
187   - cur_pages, key_ancestors, pages, allow_changes,
188   - warn_skipped_keys, visited);
189   -}
190   -
191   -void
192   -QPDF::pushInheritedAttributesToPageInternal2(
193   - QPDFObjectHandle cur_pages,
194   - std::map<std::string, std::vector<QPDFObjectHandle> >& key_ancestors,
195   - std::vector<QPDFObjectHandle>& pages,
196 185 bool allow_changes, bool warn_skipped_keys,
197 186 std::set<QPDFObjGen>& visited)
198 187 {
... ... @@ -291,7 +280,7 @@ QPDF::pushInheritedAttributesToPageInternal2(
291 280 int n = kids.getArrayNItems();
292 281 for (int i = 0; i < n; ++i)
293 282 {
294   - pushInheritedAttributesToPageInternal2(
  283 + pushInheritedAttributesToPageInternal(
295 284 kids.getArrayItem(i), key_ancestors, pages,
296 285 allow_changes, warn_skipped_keys, visited);
297 286 }
... ...
libqpdf/QPDF_pages.cc
... ... @@ -47,33 +47,19 @@ QPDF::getAllPages()
47 47 // initialize this->m->all_pages.
48 48 if (this->m->all_pages.empty())
49 49 {
50   - getAllPagesInternal(getRoot().getKey("/Pages"), this->m->all_pages);
  50 + std::set<QPDFObjGen> visited;
  51 + std::set<QPDFObjGen> seen;
  52 + getAllPagesInternal(getRoot().getKey("/Pages"), this->m->all_pages,
  53 + visited, seen);
51 54 }
52 55 return this->m->all_pages;
53 56 }
54 57  
55 58 void
56 59 QPDF::getAllPagesInternal(QPDFObjectHandle cur_pages,
57   - std::vector<QPDFObjectHandle>& result)
58   -{
59   - std::set<QPDFObjGen> visited;
60   - getAllPagesInternal2(cur_pages, result, visited);
61   -}
62   -
63   -void
64   -QPDF::getAllPagesInternal2(QPDFObjectHandle cur_pages,
65   - std::vector<QPDFObjectHandle>& result,
66   - std::set<QPDFObjGen>& visited)
67   -{
68   - std::set<QPDFObjGen> seen;
69   - getAllPagesInternal3(cur_pages, result, visited, seen);
70   -}
71   -
72   -void
73   -QPDF::getAllPagesInternal3(QPDFObjectHandle cur_pages,
74   - std::vector<QPDFObjectHandle>& result,
75   - std::set<QPDFObjGen>& visited,
76   - std::set<QPDFObjGen>& seen)
  60 + std::vector<QPDFObjectHandle>& result,
  61 + std::set<QPDFObjGen>& visited,
  62 + std::set<QPDFObjGen>& seen)
77 63 {
78 64 QPDFObjGen this_og = cur_pages.getObjGen();
79 65 if (visited.count(this_og) > 0)
... ... @@ -119,7 +105,7 @@ QPDF::getAllPagesInternal3(QPDFObjectHandle cur_pages,
119 105 kid = makeIndirectObject(QPDFObjectHandle(kid).shallowCopy());
120 106 kids.setArrayItem(i, kid);
121 107 }
122   - getAllPagesInternal3(kid, result, visited, seen);
  108 + getAllPagesInternal(kid, result, visited, seen);
123 109 }
124 110 }
125 111 else if (type == "/Page")
... ...