aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2023-05-18 19:05:59 +0200
committerm-holger <m-holger@kubitscheck.org>2023-05-19 19:56:01 +0200
commitae2d623929c280f1d2411787bf4e41d5d91a4f3a (patch)
treef470e6d7c7f02cfb4e7518ac8922a1e42e6842b4
parent8fbef47093e93cfdaffd62449a18b57679b610f5 (diff)
downloadqpdf-ae2d623929c280f1d2411787bf4e41d5d91a4f3a.tar.zst
Use QPDFObjGen::set in QPDF::updateObjectMaps
-rw-r--r--include/qpdf/QPDF.hh2
-rw-r--r--libqpdf/QPDF_optimization.cc7
2 files changed, 4 insertions, 5 deletions
diff --git a/include/qpdf/QPDF.hh b/include/qpdf/QPDF.hh
index 88dadcdb..955f9c17 100644
--- a/include/qpdf/QPDF.hh
+++ b/include/qpdf/QPDF.hh
@@ -1645,7 +1645,7 @@ class QPDF
ObjUser const& ou,
QPDFObjectHandle oh,
std::function<int(QPDFObjectHandle&)> skip_stream_parameters,
- std::set<QPDFObjGen>& visited,
+ QPDFObjGen::set& visited,
bool top);
void filterCompressedObjects(std::map<int, int> const& object_stream_data);
diff --git a/libqpdf/QPDF_optimization.cc b/libqpdf/QPDF_optimization.cc
index 41204fbd..0c534432 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()) {