Commit d8e4a08122063dc604c6ea072abb00c6cbc61216

Authored by m-holger
1 parent 567dd10a

Pass QPDFObjGen by value

Except for virtual functions to avoid the need for users to update code.
examples/pdf-custom-filter.cc
... ... @@ -179,7 +179,7 @@ class StreamReplacer: public QPDFObjectHandle::StreamDataProvider
179 179  
180 180 private:
181 181 bool maybeReplace(
182   - QPDFObjGen const& og,
  182 + QPDFObjGen og,
183 183 QPDFObjectHandle& stream,
184 184 Pipeline* pipeline,
185 185 QPDFObjectHandle* dict_updates);
... ... @@ -204,10 +204,7 @@ StreamReplacer::StreamReplacer(QPDF* pdf) :
204 204  
205 205 bool
206 206 StreamReplacer::maybeReplace(
207   - QPDFObjGen const& og,
208   - QPDFObjectHandle& stream,
209   - Pipeline* pipeline,
210   - QPDFObjectHandle* dict_updates)
  207 + QPDFObjGen og, QPDFObjectHandle& stream, Pipeline* pipeline, QPDFObjectHandle* dict_updates)
211 208 {
212 209 // As described in the class comments, this method is called twice. Before writing has started
213 210 // pipeline is nullptr, and dict_updates is provided. In this mode, we figure out whether we
... ...
include/qpdf/QPDF.hh
... ... @@ -367,13 +367,13 @@ class QPDF
367 367 // Retrieve an object by object ID and generation. Returns an indirect reference to it. The
368 368 // getObject() methods were added for qpdf 11.
369 369 QPDF_DLL
370   - QPDFObjectHandle getObject(QPDFObjGen const&);
  370 + QPDFObjectHandle getObject(QPDFObjGen);
371 371 QPDF_DLL
372 372 QPDFObjectHandle getObject(int objid, int generation);
373 373 // These are older methods, but there is no intention to deprecate
374 374 // them.
375 375 QPDF_DLL
376   - QPDFObjectHandle getObjectByObjGen(QPDFObjGen const&);
  376 + QPDFObjectHandle getObjectByObjGen(QPDFObjGen);
377 377 QPDF_DLL
378 378 QPDFObjectHandle getObjectByID(int objid, int generation);
379 379  
... ... @@ -387,14 +387,14 @@ class QPDF
387 387 // object is treated as a null object. To replace a reserved object, call replaceReserved
388 388 // instead.
389 389 QPDF_DLL
390   - void replaceObject(QPDFObjGen const& og, QPDFObjectHandle);
  390 + void replaceObject(QPDFObjGen og, QPDFObjectHandle);
391 391 QPDF_DLL
392 392 void replaceObject(int objid, int generation, QPDFObjectHandle);
393 393  
394 394 // Swap two objects given by ID. Prior to qpdf 10.2.1, existing QPDFObjectHandle instances that
395 395 // reference them objects not notice the swap, but this was fixed in 10.2.1.
396 396 QPDF_DLL
397   - void swapObjects(QPDFObjGen const& og1, QPDFObjGen const& og2);
  397 + void swapObjects(QPDFObjGen og1, QPDFObjGen og2);
398 398 QPDF_DLL
399 399 void swapObjects(int objid1, int generation1, int objid2, int generation2);
400 400  
... ... @@ -694,7 +694,7 @@ class QPDF
694 694 // into the array returned by getAllPages() for that page. An exception is thrown if the page is
695 695 // not found.
696 696 QPDF_DLL
697   - int findPage(QPDFObjGen const& og);
  697 + int findPage(QPDFObjGen og);
698 698 QPDF_DLL
699 699 int findPage(QPDFObjectHandle& page);
700 700  
... ... @@ -859,7 +859,7 @@ class QPDF
859 859 static bool
860 860 pipeStreamData(
861 861 QPDF* qpdf,
862   - QPDFObjGen const& og,
  862 + QPDFObjGen og,
863 863 qpdf_offset_t offset,
864 864 size_t length,
865 865 QPDFObjectHandle dict,
... ... @@ -964,7 +964,7 @@ class QPDF
964 964 ForeignStreamData(
965 965 std::shared_ptr<EncryptionParameters> encp,
966 966 std::shared_ptr<InputSource> file,
967   - QPDFObjGen const& foreign_og,
  967 + QPDFObjGen foreign_og,
968 968 qpdf_offset_t offset,
969 969 size_t length,
970 970 QPDFObjectHandle local_dict);
... ... @@ -1002,7 +1002,7 @@ class QPDF
1002 1002 friend class QPDF;
1003 1003  
1004 1004 public:
1005   - StringDecrypter(QPDF* qpdf, QPDFObjGen const& og);
  1005 + StringDecrypter(QPDF* qpdf, QPDFObjGen og);
1006 1006 ~StringDecrypter() override = default;
1007 1007 void decryptString(std::string& val) override;
1008 1008  
... ... @@ -1014,7 +1014,7 @@ class QPDF
1014 1014 class ResolveRecorder
1015 1015 {
1016 1016 public:
1017   - ResolveRecorder(QPDF* qpdf, QPDFObjGen const& og) :
  1017 + ResolveRecorder(QPDF* qpdf, QPDFObjGen og) :
1018 1018 qpdf(qpdf),
1019 1019 iter(qpdf->m->resolving.insert(og).first)
1020 1020 {
... ... @@ -1054,14 +1054,14 @@ class QPDF
1054 1054 void insertXrefEntry(int obj, int f0, qpdf_offset_t f1, int f2);
1055 1055 void insertFreeXrefEntry(QPDFObjGen);
1056 1056 void insertReconstructedXrefEntry(int obj, qpdf_offset_t f1, int f2);
1057   - void setLastObjectDescription(std::string const& description, QPDFObjGen const& og);
  1057 + void setLastObjectDescription(std::string const& description, QPDFObjGen og);
1058 1058 QPDFObjectHandle readTrailer();
1059 1059 QPDFObjectHandle readObject(std::string const& description, QPDFObjGen og);
1060 1060 void readStream(QPDFObjectHandle& object, QPDFObjGen og, qpdf_offset_t offset);
1061 1061 void validateStreamLineEnd(QPDFObjectHandle& object, QPDFObjGen og, qpdf_offset_t offset);
1062 1062 QPDFObjectHandle readObjectInStream(std::shared_ptr<InputSource>& input, int obj);
1063 1063 size_t recoverStreamLength(
1064   - std::shared_ptr<InputSource> input, QPDFObjGen const& og, qpdf_offset_t stream_offset);
  1064 + std::shared_ptr<InputSource> input, QPDFObjGen og, qpdf_offset_t stream_offset);
1065 1065 QPDFTokenizer::Token readToken(InputSource&, size_t max_len = 0);
1066 1066  
1067 1067 QPDFObjectHandle readObjectAtOffset(
... ... @@ -1075,15 +1075,15 @@ class QPDF
1075 1075 void resolveObjectsInStream(int obj_stream_number);
1076 1076 void stopOnError(std::string const& message);
1077 1077 QPDFObjGen nextObjGen();
1078   - QPDFObjectHandle newIndirect(QPDFObjGen const&, std::shared_ptr<QPDFObject> const&);
  1078 + QPDFObjectHandle newIndirect(QPDFObjGen, std::shared_ptr<QPDFObject> const&);
1079 1079 QPDFObjectHandle makeIndirectFromQPDFObject(std::shared_ptr<QPDFObject> const& obj);
1080   - bool isCached(QPDFObjGen const& og);
1081   - bool isUnresolved(QPDFObjGen const& og);
  1080 + bool isCached(QPDFObjGen og);
  1081 + bool isUnresolved(QPDFObjGen og);
1082 1082 std::shared_ptr<QPDFObject> getObjectForParser(int id, int gen, bool parse_pdf);
1083 1083 std::shared_ptr<QPDFObject> getObjectForJSON(int id, int gen);
1084 1084 void removeObject(QPDFObjGen og);
1085 1085 void updateCache(
1086   - QPDFObjGen const& og,
  1086 + QPDFObjGen og,
1087 1087 std::shared_ptr<QPDFObject> const& object,
1088 1088 qpdf_offset_t end_before_space,
1089 1089 qpdf_offset_t end_after_space);
... ... @@ -1100,7 +1100,7 @@ class QPDF
1100 1100  
1101 1101 // Calls finish() on the pipeline when done but does not delete it
1102 1102 bool pipeStreamData(
1103   - QPDFObjGen const& og,
  1103 + QPDFObjGen og,
1104 1104 qpdf_offset_t offset,
1105 1105 size_t length,
1106 1106 QPDFObjectHandle dict,
... ... @@ -1113,7 +1113,7 @@ class QPDF
1113 1113 std::shared_ptr<QPDF::EncryptionParameters> encp,
1114 1114 std::shared_ptr<InputSource> file,
1115 1115 QPDF& qpdf_for_warning,
1116   - QPDFObjGen const& og,
  1116 + QPDFObjGen og,
1117 1117 qpdf_offset_t offset,
1118 1118 size_t length,
1119 1119 QPDFObjectHandle dict,
... ... @@ -1174,8 +1174,8 @@ class QPDF
1174 1174 interpretCF(std::shared_ptr<EncryptionParameters> encp, QPDFObjectHandle);
1175 1175 void initializeEncryption();
1176 1176 static std::string
1177   - getKeyForObject(std::shared_ptr<EncryptionParameters> encp, QPDFObjGen const& og, bool use_aes);
1178   - void decryptString(std::string&, QPDFObjGen const& og);
  1177 + getKeyForObject(std::shared_ptr<EncryptionParameters> encp, QPDFObjGen og, bool use_aes);
  1178 + void decryptString(std::string&, QPDFObjGen og);
1179 1179 static std::string
1180 1180 compute_encryption_key_from_password(std::string const& password, EncryptionData const& data);
1181 1181 static std::string
... ... @@ -1187,7 +1187,7 @@ class QPDF
1187 1187 std::shared_ptr<InputSource> file,
1188 1188 QPDF& qpdf_for_warning,
1189 1189 Pipeline*& pipeline,
1190   - QPDFObjGen const& og,
  1190 + QPDFObjGen og,
1191 1191 QPDFObjectHandle& stream_dict,
1192 1192 std::unique_ptr<Pipeline>& heap);
1193 1193  
... ... @@ -1408,7 +1408,7 @@ class QPDF
1408 1408 void readHSharedObject(BitStream);
1409 1409 void readHGeneric(BitStream, HGeneric&);
1410 1410 qpdf_offset_t maxEnd(ObjUser const& ou);
1411   - qpdf_offset_t getLinearizationOffset(QPDFObjGen const&);
  1411 + qpdf_offset_t getLinearizationOffset(QPDFObjGen);
1412 1412 QPDFObjectHandle
1413 1413 getUncompressedObject(QPDFObjectHandle&, std::map<int, int> const& object_stream_data);
1414 1414 QPDFObjectHandle getUncompressedObject(QPDFObjectHandle&, QPDFWriter::ObjTable const& obj);
... ...
include/qpdf/QPDFOutlineDocumentHelper.hh
... ... @@ -58,16 +58,14 @@ class QPDFOutlineDocumentHelper: public QPDFDocumentHelper
58 58  
59 59 // Return a list outlines that are known to target the specified page.
60 60 QPDF_DLL
61   - std::vector<QPDFOutlineObjectHelper> getOutlinesForPage(QPDFObjGen const&);
  61 + std::vector<QPDFOutlineObjectHelper> getOutlinesForPage(QPDFObjGen);
62 62  
63 63 class Accessor
64 64 {
65 65 friend class QPDFOutlineObjectHelper;
66 66  
67   - // ABI: remove QPDF_DLL and pass og by value.
68   - QPDF_DLL
69 67 static bool
70   - checkSeen(QPDFOutlineDocumentHelper& dh, QPDFObjGen const& og)
  68 + checkSeen(QPDFOutlineDocumentHelper& dh, QPDFObjGen og)
71 69 {
72 70 return !dh.m->seen.add(og);
73 71 }
... ...
include/qpdf/QPDFWriter.hh
... ... @@ -485,7 +485,7 @@ class QPDFWriter
485 485 void writeStringQDF(std::string_view str);
486 486 void writeStringNoQDF(std::string_view str);
487 487 void writePad(size_t nspaces);
488   - void assignCompressedObjectNumbers(QPDFObjGen const& og);
  488 + void assignCompressedObjectNumbers(QPDFObjGen og);
489 489 void enqueueObject(QPDFObjectHandle object);
490 490 void writeObjectStreamOffsets(std::vector<qpdf_offset_t>& offsets, int first_obj);
491 491 void writeObjectStream(QPDFObjectHandle object);
... ...
libqpdf/QPDF.cc
... ... @@ -112,7 +112,7 @@ namespace
112 112 QPDF::ForeignStreamData::ForeignStreamData(
113 113 std::shared_ptr<EncryptionParameters> encp,
114 114 std::shared_ptr<InputSource> file,
115   - QPDFObjGen const& foreign_og,
  115 + QPDFObjGen foreign_og,
116 116 qpdf_offset_t offset,
117 117 size_t length,
118 118 QPDFObjectHandle local_dict) :
... ... @@ -164,7 +164,7 @@ QPDF::CopiedStreamDataProvider::registerForeignStream(
164 164 this->foreign_stream_data[local_og] = foreign_stream;
165 165 }
166 166  
167   -QPDF::StringDecrypter::StringDecrypter(QPDF* qpdf, QPDFObjGen const& og) :
  167 +QPDF::StringDecrypter::StringDecrypter(QPDF* qpdf, QPDFObjGen og) :
168 168 qpdf(qpdf),
169 169 og(og)
170 170 {
... ... @@ -1463,7 +1463,7 @@ QPDF::getAllObjects()
1463 1463 }
1464 1464  
1465 1465 void
1466   -QPDF::setLastObjectDescription(std::string const& description, QPDFObjGen const& og)
  1466 +QPDF::setLastObjectDescription(std::string const& description, QPDFObjGen og)
1467 1467 {
1468 1468 m->last_object_description.clear();
1469 1469 if (!description.empty()) {
... ... @@ -1650,7 +1650,7 @@ QPDF::findEndstream()
1650 1650  
1651 1651 size_t
1652 1652 QPDF::recoverStreamLength(
1653   - std::shared_ptr<InputSource> input, QPDFObjGen const& og, qpdf_offset_t stream_offset)
  1653 + std::shared_ptr<InputSource> input, QPDFObjGen og, qpdf_offset_t stream_offset)
1654 1654 {
1655 1655 // Try to reconstruct stream length by looking for endstream or endobj
1656 1656 warn(damagedPDF(*input, stream_offset, "attempting to recover stream length"));
... ... @@ -2023,7 +2023,7 @@ QPDF::resolveObjectsInStream(int obj_stream_number)
2023 2023 }
2024 2024  
2025 2025 QPDFObjectHandle
2026   -QPDF::newIndirect(QPDFObjGen const& og, std::shared_ptr<QPDFObject> const& obj)
  2026 +QPDF::newIndirect(QPDFObjGen og, std::shared_ptr<QPDFObject> const& obj)
2027 2027 {
2028 2028 obj->setDefaultDescription(this, og);
2029 2029 return {obj};
... ... @@ -2031,7 +2031,7 @@ QPDF::newIndirect(QPDFObjGen const&amp; og, std::shared_ptr&lt;QPDFObject&gt; const&amp; obj)
2031 2031  
2032 2032 void
2033 2033 QPDF::updateCache(
2034   - QPDFObjGen const& og,
  2034 + QPDFObjGen og,
2035 2035 std::shared_ptr<QPDFObject> const& object,
2036 2036 qpdf_offset_t end_before_space,
2037 2037 qpdf_offset_t end_after_space)
... ... @@ -2048,13 +2048,13 @@ QPDF::updateCache(
2048 2048 }
2049 2049  
2050 2050 bool
2051   -QPDF::isCached(QPDFObjGen const& og)
  2051 +QPDF::isCached(QPDFObjGen og)
2052 2052 {
2053 2053 return m->obj_cache.count(og) != 0;
2054 2054 }
2055 2055  
2056 2056 bool
2057   -QPDF::isUnresolved(QPDFObjGen const& og)
  2057 +QPDF::isUnresolved(QPDFObjGen og)
2058 2058 {
2059 2059 return !isCached(og) || m->obj_cache[og].object->isUnresolved();
2060 2060 }
... ... @@ -2152,7 +2152,7 @@ QPDF::getObjectForJSON(int id, int gen)
2152 2152 }
2153 2153  
2154 2154 QPDFObjectHandle
2155   -QPDF::getObject(QPDFObjGen const& og)
  2155 +QPDF::getObject(QPDFObjGen og)
2156 2156 {
2157 2157 if (auto it = m->obj_cache.find(og); it != m->obj_cache.end()) {
2158 2158 return {it->second.object};
... ... @@ -2171,7 +2171,7 @@ QPDF::getObject(int objid, int generation)
2171 2171 }
2172 2172  
2173 2173 QPDFObjectHandle
2174   -QPDF::getObjectByObjGen(QPDFObjGen const& og)
  2174 +QPDF::getObjectByObjGen(QPDFObjGen og)
2175 2175 {
2176 2176 return getObject(og);
2177 2177 }
... ... @@ -2189,7 +2189,7 @@ QPDF::replaceObject(int objid, int generation, QPDFObjectHandle oh)
2189 2189 }
2190 2190  
2191 2191 void
2192   -QPDF::replaceObject(QPDFObjGen const& og, QPDFObjectHandle oh)
  2192 +QPDF::replaceObject(QPDFObjGen og, QPDFObjectHandle oh)
2193 2193 {
2194 2194 if (!oh || (oh.isIndirect() && !(oh.isStream() && oh.getObjGen() == og))) {
2195 2195 QTC::TC("qpdf", "QPDF replaceObject called with indirect object");
... ... @@ -2493,7 +2493,7 @@ QPDF::swapObjects(int objid1, int generation1, int objid2, int generation2)
2493 2493 }
2494 2494  
2495 2495 void
2496   -QPDF::swapObjects(QPDFObjGen const& og1, QPDFObjGen const& og2)
  2496 +QPDF::swapObjects(QPDFObjGen og1, QPDFObjGen og2)
2497 2497 {
2498 2498 // Force objects to be read from the input source if needed, then swap them in the cache.
2499 2499 resolve(og1);
... ... @@ -2727,7 +2727,7 @@ QPDF::pipeStreamData(
2727 2727 std::shared_ptr<EncryptionParameters> encp,
2728 2728 std::shared_ptr<InputSource> file,
2729 2729 QPDF& qpdf_for_warning,
2730   - QPDFObjGen const& og,
  2730 + QPDFObjGen og,
2731 2731 qpdf_offset_t offset,
2732 2732 size_t length,
2733 2733 QPDFObjectHandle stream_dict,
... ... @@ -2789,7 +2789,7 @@ QPDF::pipeStreamData(
2789 2789  
2790 2790 bool
2791 2791 QPDF::pipeStreamData(
2792   - QPDFObjGen const& og,
  2792 + QPDFObjGen og,
2793 2793 qpdf_offset_t offset,
2794 2794 size_t length,
2795 2795 QPDFObjectHandle stream_dict,
... ...
libqpdf/QPDFOutlineDocumentHelper.cc
... ... @@ -50,7 +50,7 @@ QPDFOutlineDocumentHelper::initializeByPage()
50 50 }
51 51  
52 52 std::vector<QPDFOutlineObjectHelper>
53   -QPDFOutlineDocumentHelper::getOutlinesForPage(QPDFObjGen const& og)
  53 +QPDFOutlineDocumentHelper::getOutlinesForPage(QPDFObjGen og)
54 54 {
55 55 if (m->by_page.empty()) {
56 56 initializeByPage();
... ...
libqpdf/QPDFWriter.cc
... ... @@ -1058,7 +1058,7 @@ QPDFWriter::closeObject(int objid)
1058 1058 }
1059 1059  
1060 1060 void
1061   -QPDFWriter::assignCompressedObjectNumbers(QPDFObjGen const& og)
  1061 +QPDFWriter::assignCompressedObjectNumbers(QPDFObjGen og)
1062 1062 {
1063 1063 int objid = og.getObj();
1064 1064 if ((og.getGen() != 0) || (m->object_stream_to_objects.count(objid) == 0)) {
... ...
libqpdf/QPDF_Unresolved.cc
... ... @@ -3,13 +3,13 @@
3 3 #include <qpdf/QPDF.hh>
4 4 #include <qpdf/QPDFObject_private.hh>
5 5  
6   -QPDF_Unresolved::QPDF_Unresolved(QPDF* qpdf, QPDFObjGen const& og) :
  6 +QPDF_Unresolved::QPDF_Unresolved(QPDF* qpdf, QPDFObjGen og) :
7 7 QPDFValue(::ot_unresolved, qpdf, og)
8 8 {
9 9 }
10 10  
11 11 std::shared_ptr<QPDFObject>
12   -QPDF_Unresolved::create(QPDF* qpdf, QPDFObjGen const& og)
  12 +QPDF_Unresolved::create(QPDF* qpdf, QPDFObjGen og)
13 13 {
14 14 return do_create(new QPDF_Unresolved(qpdf, og));
15 15 }
... ...
libqpdf/QPDF_encryption.cc
... ... @@ -952,8 +952,7 @@ QPDF::initializeEncryption()
952 952 }
953 953  
954 954 std::string
955   -QPDF::getKeyForObject(
956   - std::shared_ptr<EncryptionParameters> encp, QPDFObjGen const& og, bool use_aes)
  955 +QPDF::getKeyForObject(std::shared_ptr<EncryptionParameters> encp, QPDFObjGen og, bool use_aes)
957 956 {
958 957 if (!encp->encrypted) {
959 958 throw std::logic_error("request for encryption key in non-encrypted PDF");
... ... @@ -974,7 +973,7 @@ QPDF::getKeyForObject(
974 973 }
975 974  
976 975 void
977   -QPDF::decryptString(std::string& str, QPDFObjGen const& og)
  976 +QPDF::decryptString(std::string& str, QPDFObjGen og)
978 977 {
979 978 if (!og.isIndirect()) {
980 979 return;
... ... @@ -1048,7 +1047,7 @@ QPDF::decryptStream(
1048 1047 std::shared_ptr<InputSource> file,
1049 1048 QPDF& qpdf_for_warning,
1050 1049 Pipeline*& pipeline,
1051   - QPDFObjGen const& og,
  1050 + QPDFObjGen og,
1052 1051 QPDFObjectHandle& stream_dict,
1053 1052 std::unique_ptr<Pipeline>& decrypt_pipeline)
1054 1053 {
... ...
libqpdf/QPDF_linearization.cc
... ... @@ -557,7 +557,7 @@ QPDF::maxEnd(ObjUser const&amp; ou)
557 557 }
558 558  
559 559 qpdf_offset_t
560   -QPDF::getLinearizationOffset(QPDFObjGen const& og)
  560 +QPDF::getLinearizationOffset(QPDFObjGen og)
561 561 {
562 562 QPDFXRefEntry entry = m->xref_table[og];
563 563 qpdf_offset_t result = 0;
... ...
libqpdf/QPDF_pages.cc
... ... @@ -323,7 +323,7 @@ QPDF::findPage(QPDFObjectHandle&amp; page)
323 323 }
324 324  
325 325 int
326   -QPDF::findPage(QPDFObjGen const& og)
  326 +QPDF::findPage(QPDFObjGen og)
327 327 {
328 328 flattenPagesTree();
329 329 auto it = m->pageobj_to_pages_pos.find(og);
... ...
libqpdf/qpdf/QPDFObject_private.hh
... ... @@ -132,13 +132,13 @@ class QPDFObject
132 132 }
133 133  
134 134 void
135   - setDefaultDescription(QPDF* qpdf, QPDFObjGen const& og)
  135 + setDefaultDescription(QPDF* qpdf, QPDFObjGen og)
136 136 {
137 137 // Intended for use by the QPDF class
138 138 value->setDefaultDescription(qpdf, og);
139 139 }
140 140 void
141   - setObjGen(QPDF* qpdf, QPDFObjGen const& og)
  141 + setObjGen(QPDF* qpdf, QPDFObjGen og)
142 142 {
143 143 value->qpdf = qpdf;
144 144 value->og = og;
... ...
libqpdf/qpdf/QPDFValue.hh
... ... @@ -65,7 +65,7 @@ class QPDFValue: public std::enable_shared_from_this&lt;QPDFValue&gt;
65 65 setParsedOffset(offset);
66 66 }
67 67 void
68   - setDefaultDescription(QPDF* a_qpdf, QPDFObjGen const& a_og)
  68 + setDefaultDescription(QPDF* a_qpdf, QPDFObjGen a_og)
69 69 {
70 70 qpdf = a_qpdf;
71 71 og = a_og;
... ...
libqpdf/qpdf/QPDF_Unresolved.hh
... ... @@ -7,14 +7,14 @@ class QPDF_Unresolved: public QPDFValue
7 7 {
8 8 public:
9 9 ~QPDF_Unresolved() override = default;
10   - static std::shared_ptr<QPDFObject> create(QPDF* qpdf, QPDFObjGen const& og);
  10 + static std::shared_ptr<QPDFObject> create(QPDF* qpdf, QPDFObjGen og);
11 11 std::shared_ptr<QPDFObject> copy(bool shallow = false) override;
12 12 std::string unparse() override;
13 13 void writeJSON(int json_version, JSON::Writer& p) override;
14 14 std::string getStringValue() const override;
15 15  
16 16 private:
17   - QPDF_Unresolved(QPDF* qpdf, QPDFObjGen const& og);
  17 + QPDF_Unresolved(QPDF* qpdf, QPDFObjGen og);
18 18 };
19 19  
20 20 #endif // QPDF_UNRESOLVED_HH
... ...