Commit 83443c116d84494da3ee859f0115898118769dca

Authored by m-holger
1 parent b5a57800

Make ObjCache of inner class of QPDF::Objects and rename to Entry

include/qpdf/QPDF.hh
@@ -748,7 +748,6 @@ class QPDF @@ -748,7 +748,6 @@ class QPDF
748 748
749 static std::string const qpdf_version; 749 static std::string const qpdf_version;
750 750
751 - class ObjCache;  
752 class ObjCopier; 751 class ObjCopier;
753 class EncryptionParameters; 752 class EncryptionParameters;
754 class ForeignStreamData; 753 class ForeignStreamData;
libqpdf/QPDF_objects.cc
@@ -747,8 +747,8 @@ Xref_table::read_stream(qpdf_offset_t xref_offset) @@ -747,8 +747,8 @@ Xref_table::read_stream(qpdf_offset_t xref_offset)
747 QPDFObjGen x_og; 747 QPDFObjGen x_og;
748 QPDFObjectHandle xref_obj; 748 QPDFObjectHandle xref_obj;
749 try { 749 try {
750 - xref_obj = qpdf.objects().read(  
751 - false, xref_offset, "xref stream", QPDFObjGen(0, 0), x_og, true); 750 + xref_obj =
  751 + objects.read(false, xref_offset, "xref stream", QPDFObjGen(0, 0), x_og, true);
752 } catch (QPDFExc&) { 752 } catch (QPDFExc&) {
753 // ignore -- report error below 753 // ignore -- report error below
754 } 754 }
@@ -1693,7 +1693,7 @@ Objects::update_table(QPDFObjGen og, const std::shared_ptr<QPDFObject>& object) @@ -1693,7 +1693,7 @@ Objects::update_table(QPDFObjGen og, const std::shared_ptr<QPDFObject>& object)
1693 auto& cache = obj_cache[og]; 1693 auto& cache = obj_cache[og];
1694 cache.object->assign(object); 1694 cache.object->assign(object);
1695 } else { 1695 } else {
1696 - obj_cache[og] = ObjCache(object); 1696 + obj_cache[og] = Entry(object);
1697 } 1697 }
1698 } 1698 }
1699 1699
@@ -1723,7 +1723,7 @@ QPDFObjectHandle @@ -1723,7 +1723,7 @@ QPDFObjectHandle
1723 Objects::make_indirect(std::shared_ptr<QPDFObject> const& obj) 1723 Objects::make_indirect(std::shared_ptr<QPDFObject> const& obj)
1724 { 1724 {
1725 QPDFObjGen next{next_id()}; 1725 QPDFObjGen next{next_id()};
1726 - obj_cache[next] = ObjCache(obj); 1726 + obj_cache[next] = Entry(obj);
1727 return qpdf.newIndirect(next, obj_cache[next].object); 1727 return qpdf.newIndirect(next, obj_cache[next].object);
1728 } 1728 }
1729 1729
libqpdf/qpdf/QPDF_objects.hh
@@ -375,6 +375,18 @@ class QPDF::Objects @@ -375,6 +375,18 @@ class QPDF::Objects
375 qpdf_offset_t first_item_offset_{0}; // actual value from file 375 qpdf_offset_t first_item_offset_{0}; // actual value from file
376 }; // Xref_table; 376 }; // Xref_table;
377 377
  378 + struct Entry
  379 + {
  380 + Entry() = default;
  381 +
  382 + Entry(std::shared_ptr<QPDFObject> object) :
  383 + object(std::move(object))
  384 + {
  385 + }
  386 +
  387 + std::shared_ptr<QPDFObject> object;
  388 + };
  389 +
378 Objects(QPDF& qpdf, QPDF::Members* m, InputSource* const& file) : 390 Objects(QPDF& qpdf, QPDF::Members* m, InputSource* const& file) :
379 qpdf(qpdf), 391 qpdf(qpdf),
380 file(file), 392 file(file),
@@ -407,7 +419,7 @@ class QPDF::Objects @@ -407,7 +419,7 @@ class QPDF::Objects
407 return xref.trailer(); 419 return xref.trailer();
408 } 420 }
409 421
410 - std::map<QPDFObjGen, ObjCache> obj_cache; 422 + std::map<QPDFObjGen, Entry> obj_cache;
411 423
412 QPDFObjectHandle readObjectInStream(std::shared_ptr<InputSource>& input, int obj); 424 QPDFObjectHandle readObjectInStream(std::shared_ptr<InputSource>& input, int obj);
413 QPDFObjectHandle read( 425 QPDFObjectHandle read(
libqpdf/qpdf/QPDF_private.hh
@@ -72,19 +72,6 @@ class QPDF::Pipe @@ -72,19 +72,6 @@ class QPDF::Pipe
72 } 72 }
73 }; 73 };
74 74
75 -class QPDF::ObjCache  
76 -{  
77 - public:  
78 - ObjCache() = default;  
79 -  
80 - ObjCache(std::shared_ptr<QPDFObject> object) :  
81 - object(object)  
82 - {  
83 - }  
84 -  
85 - std::shared_ptr<QPDFObject> object;  
86 -};  
87 -  
88 class QPDF::ObjCopier 75 class QPDF::ObjCopier
89 { 76 {
90 public: 77 public: