aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDF_optimization.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <jberkenbilt@users.noreply.github.com>2023-05-20 20:09:49 +0200
committerGitHub <noreply@github.com>2023-05-20 20:09:49 +0200
commita85635b839755765713eb27d767f42b357056b2e (patch)
tree369b4e49b78e54e04a0409b774a659206017addd /libqpdf/QPDF_optimization.cc
parentfd17c8e3fe38a56abf50ce0edec1cde48d4f74cb (diff)
parent50bc82b4e035853bd06a9935722d6b5aec902133 (diff)
downloadqpdf-a85635b839755765713eb27d767f42b357056b2e.tar.zst
Merge pull request #929 from m-holger/ogguard
Add new convenience class QPDFObjGen::Guard
Diffstat (limited to 'libqpdf/QPDF_optimization.cc')
-rw-r--r--libqpdf/QPDF_optimization.cc7
1 files changed, 3 insertions, 4 deletions
diff --git a/libqpdf/QPDF_optimization.cc b/libqpdf/QPDF_optimization.cc
index 9130287a..85fc59d6 100644
--- a/libqpdf/QPDF_optimization.cc
+++ b/libqpdf/QPDF_optimization.cc
@@ -284,7 +284,7 @@ QPDF::updateObjectMaps(
QPDFObjectHandle oh,
std::function<int(QPDFObjectHandle&)> skip_stream_parameters)
{
- std::set<QPDFObjGen> visited;
+ QPDFObjGen::set visited;
updateObjectMapsInternal(ou, oh, skip_stream_parameters, visited, true);
}
@@ -293,7 +293,7 @@ QPDF::updateObjectMapsInternal(
ObjUser const& ou,
QPDFObjectHandle oh,
std::function<int(QPDFObjectHandle&)> skip_stream_parameters,
- std::set<QPDFObjGen>& visited,
+ QPDFObjGen::set& visited,
bool top)
{
// Traverse the object tree from this point taking care to avoid
@@ -310,13 +310,12 @@ QPDF::updateObjectMapsInternal(
if (oh.isIndirect()) {
QPDFObjGen og(oh.getObjGen());
- if (visited.count(og)) {
+ if (!visited.add(og)) {
QTC::TC("qpdf", "QPDF opt loop detected");
return;
}
this->m->obj_user_to_objects[ou].insert(og);
this->m->object_to_obj_users[og].insert(ou);
- visited.insert(og);
}
if (oh.isArray()) {