Commit 113ea4e7ae962d3d0c54cb6bedf255f55b23de84

Authored by m-holger
1 parent 9e03dc54

Add new method Objects::all

libqpdf/QPDF.cc
@@ -500,6 +500,12 @@ QPDF::getObjectCount() @@ -500,6 +500,12 @@ QPDF::getObjectCount()
500 return toS(og.getObj()); 500 return toS(og.getObj());
501 } 501 }
502 502
  503 +std::vector<QPDFObjectHandle>
  504 +QPDF::getAllObjects()
  505 +{
  506 + return m->objects.all();
  507 +}
  508 +
503 void 509 void
504 QPDF::setLastObjectDescription(std::string const& description, QPDFObjGen const& og) 510 QPDF::setLastObjectDescription(std::string const& description, QPDFObjGen const& og)
505 { 511 {
libqpdf/QPDF_objects.cc
@@ -1149,13 +1149,13 @@ Xref_table::resolve() @@ -1149,13 +1149,13 @@ Xref_table::resolve()
1149 } 1149 }
1150 1150
1151 std::vector<QPDFObjectHandle> 1151 std::vector<QPDFObjectHandle>
1152 -QPDF::getAllObjects() 1152 +Objects ::all()
1153 { 1153 {
1154 // After fixDanglingReferences is called, all objects are in the object cache. 1154 // After fixDanglingReferences is called, all objects are in the object cache.
1155 - fixDanglingReferences(); 1155 + qpdf.fixDanglingReferences();
1156 std::vector<QPDFObjectHandle> result; 1156 std::vector<QPDFObjectHandle> result;
1157 - for (auto const& iter: m->objects.obj_cache) {  
1158 - result.push_back(newIndirect(iter.first, iter.second.object)); 1157 + for (auto const& iter: obj_cache) {
  1158 + result.emplace_back(iter.second.object);
1159 } 1159 }
1160 return result; 1160 return result;
1161 } 1161 }
libqpdf/qpdf/QPDF_objects.hh
@@ -441,6 +441,8 @@ class QPDF::Objects @@ -441,6 +441,8 @@ class QPDF::Objects
441 return get(QPDFObjGen(id, gen)); 441 return get(QPDFObjGen(id, gen));
442 } 442 }
443 443
  444 + std::vector<QPDFObjectHandle> all();
  445 +
444 void erase(QPDFObjGen og); 446 void erase(QPDFObjGen og);
445 447
446 void replace(QPDFObjGen og, QPDFObjectHandle oh); 448 void replace(QPDFObjGen og, QPDFObjectHandle oh);