aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-01-30 04:04:52 +0100
committerJay Berkenbilt <ejb@ql.org>2019-01-30 04:14:20 +0100
commitb776dcd2d3180becef8f58158873a91004e324ee (patch)
treee82a4490ab93bd6039eeb1388c82f2d96ee83705
parent8d229e078f7e9f8af36ef983bb777c446aa5309b (diff)
downloadqpdf-b776dcd2d3180becef8f58158873a91004e324ee.tar.zst
Clean up some private functions
-rw-r--r--TODO3
-rw-r--r--include/qpdf/QPDF.hh16
-rw-r--r--libqpdf/QPDF_optimization.cc19
-rw-r--r--libqpdf/QPDF_pages.cc30
4 files changed, 15 insertions, 53 deletions
diff --git a/TODO b/TODO
index a4554456..5cdfb9d8 100644
--- a/TODO
+++ b/TODO
@@ -16,9 +16,6 @@ Do these things next time we have to break binary compatibility
* Rename QUtil::strcasecmp since strcasecmp is a macro on some
platforms. See #242.
- * Collapse QPDF::pushInheritedAttributesToPageInternal* and
- QPDF::getAllPagesInternal* into QPDF::*Internal.
-
* Get rid of the version of QPDF::copyForeignObject with the bool
unused parameter.
diff --git a/include/qpdf/QPDF.hh b/include/qpdf/QPDF.hh
index 329c2756..634c9bd1 100644
--- a/include/qpdf/QPDF.hh
+++ b/include/qpdf/QPDF.hh
@@ -898,14 +898,9 @@ class QPDF
// methods to support page handling
void getAllPagesInternal(QPDFObjectHandle cur_pages,
- std::vector<QPDFObjectHandle>& result);
- void getAllPagesInternal2(QPDFObjectHandle cur_pages,
- std::vector<QPDFObjectHandle>& result,
- std::set<QPDFObjGen>& visited);
- void getAllPagesInternal3(QPDFObjectHandle cur_pages,
- std::vector<QPDFObjectHandle>& result,
- std::set<QPDFObjGen>& visited,
- std::set<QPDFObjGen>& seen);
+ std::vector<QPDFObjectHandle>& result,
+ std::set<QPDFObjGen>& visited,
+ std::set<QPDFObjGen>& seen);
void insertPage(QPDFObjectHandle newpage, int pos);
int findPage(QPDFObjGen const& og);
int findPage(QPDFObjectHandle& page);
@@ -1293,11 +1288,6 @@ class QPDF
QPDFObjectHandle,
std::map<std::string, std::vector<QPDFObjectHandle> >&,
std::vector<QPDFObjectHandle>& all_pages,
- bool allow_changes, bool warn_skipped_keys);
- void pushInheritedAttributesToPageInternal2(
- QPDFObjectHandle,
- std::map<std::string, std::vector<QPDFObjectHandle> >&,
- std::vector<QPDFObjectHandle>& all_pages,
bool allow_changes, bool warn_skipped_keys,
std::set<QPDFObjGen>& visited);
void updateObjectMaps(ObjUser const& ou, QPDFObjectHandle oh);
diff --git a/libqpdf/QPDF_optimization.cc b/libqpdf/QPDF_optimization.cc
index ecece7db..5d959f10 100644
--- a/libqpdf/QPDF_optimization.cc
+++ b/libqpdf/QPDF_optimization.cc
@@ -163,9 +163,11 @@ QPDF::pushInheritedAttributesToPage(bool allow_changes, bool warn_skipped_keys)
// Pages nodes that contain values for them.
std::map<std::string, std::vector<QPDFObjectHandle> > key_ancestors;
this->m->all_pages.clear();
+ std::set<QPDFObjGen> visited;
pushInheritedAttributesToPageInternal(
this->m->trailer.getKey("/Root").getKey("/Pages"),
- key_ancestors, this->m->all_pages, allow_changes, warn_skipped_keys);
+ key_ancestors, this->m->all_pages, allow_changes, warn_skipped_keys,
+ visited);
if (! key_ancestors.empty())
{
throw std::logic_error(
@@ -180,19 +182,6 @@ QPDF::pushInheritedAttributesToPageInternal(
QPDFObjectHandle cur_pages,
std::map<std::string, std::vector<QPDFObjectHandle> >& key_ancestors,
std::vector<QPDFObjectHandle>& pages,
- bool allow_changes, bool warn_skipped_keys)
-{
- std::set<QPDFObjGen> visited;
- pushInheritedAttributesToPageInternal2(
- cur_pages, key_ancestors, pages, allow_changes,
- warn_skipped_keys, visited);
-}
-
-void
-QPDF::pushInheritedAttributesToPageInternal2(
- QPDFObjectHandle cur_pages,
- std::map<std::string, std::vector<QPDFObjectHandle> >& key_ancestors,
- std::vector<QPDFObjectHandle>& pages,
bool allow_changes, bool warn_skipped_keys,
std::set<QPDFObjGen>& visited)
{
@@ -291,7 +280,7 @@ QPDF::pushInheritedAttributesToPageInternal2(
int n = kids.getArrayNItems();
for (int i = 0; i < n; ++i)
{
- pushInheritedAttributesToPageInternal2(
+ pushInheritedAttributesToPageInternal(
kids.getArrayItem(i), key_ancestors, pages,
allow_changes, warn_skipped_keys, visited);
}
diff --git a/libqpdf/QPDF_pages.cc b/libqpdf/QPDF_pages.cc
index 01270652..f4156d03 100644
--- a/libqpdf/QPDF_pages.cc
+++ b/libqpdf/QPDF_pages.cc
@@ -47,33 +47,19 @@ QPDF::getAllPages()
// initialize this->m->all_pages.
if (this->m->all_pages.empty())
{
- getAllPagesInternal(getRoot().getKey("/Pages"), this->m->all_pages);
+ std::set<QPDFObjGen> visited;
+ std::set<QPDFObjGen> seen;
+ getAllPagesInternal(getRoot().getKey("/Pages"), this->m->all_pages,
+ visited, seen);
}
return this->m->all_pages;
}
void
QPDF::getAllPagesInternal(QPDFObjectHandle cur_pages,
- std::vector<QPDFObjectHandle>& result)
-{
- std::set<QPDFObjGen> visited;
- getAllPagesInternal2(cur_pages, result, visited);
-}
-
-void
-QPDF::getAllPagesInternal2(QPDFObjectHandle cur_pages,
- std::vector<QPDFObjectHandle>& result,
- std::set<QPDFObjGen>& visited)
-{
- std::set<QPDFObjGen> seen;
- getAllPagesInternal3(cur_pages, result, visited, seen);
-}
-
-void
-QPDF::getAllPagesInternal3(QPDFObjectHandle cur_pages,
- std::vector<QPDFObjectHandle>& result,
- std::set<QPDFObjGen>& visited,
- std::set<QPDFObjGen>& seen)
+ std::vector<QPDFObjectHandle>& result,
+ std::set<QPDFObjGen>& visited,
+ std::set<QPDFObjGen>& seen)
{
QPDFObjGen this_og = cur_pages.getObjGen();
if (visited.count(this_og) > 0)
@@ -119,7 +105,7 @@ QPDF::getAllPagesInternal3(QPDFObjectHandle cur_pages,
kid = makeIndirectObject(QPDFObjectHandle(kid).shallowCopy());
kids.setArrayItem(i, kid);
}
- getAllPagesInternal3(kid, result, visited, seen);
+ getAllPagesInternal(kid, result, visited, seen);
}
}
else if (type == "/Page")