Commit c2148fb19595af662b4af387858ffd2a058a790c

Authored by m-holger
1 parent 8007a849

Refactor `QPDFWriter`: remove `static` qualifiers from helper functions, replace…

… `QPDF` parameter with `pdf` member, and simplify method calls.
Showing 1 changed file with 25 additions and 28 deletions
libqpdf/QPDFWriter.cc
@@ -268,18 +268,16 @@ class QPDF::Writer @@ -268,18 +268,16 @@ class QPDF::Writer
268 } 268 }
269 269
270 protected: 270 protected:
271 - static void 271 + void
272 optimize( 272 optimize(
273 - QPDF& qpdf,  
274 QPDFWriter::ObjTable const& obj, 273 QPDFWriter::ObjTable const& obj,
275 std::function<int(QPDFObjectHandle&)> skip_stream_parameters) 274 std::function<int(QPDFObjectHandle&)> skip_stream_parameters)
276 { 275 {
277 - qpdf.optimize(obj, skip_stream_parameters); 276 + pdf.optimize(obj, skip_stream_parameters);
278 } 277 }
279 278
280 - static void 279 + void
281 getLinearizedParts( 280 getLinearizedParts(
282 - QPDF& qpdf,  
283 QPDFWriter::ObjTable const& obj, 281 QPDFWriter::ObjTable const& obj,
284 std::vector<QPDFObjectHandle>& part4, 282 std::vector<QPDFObjectHandle>& part4,
285 std::vector<QPDFObjectHandle>& part6, 283 std::vector<QPDFObjectHandle>& part6,
@@ -287,12 +285,11 @@ class QPDF::Writer @@ -287,12 +285,11 @@ class QPDF::Writer
287 std::vector<QPDFObjectHandle>& part8, 285 std::vector<QPDFObjectHandle>& part8,
288 std::vector<QPDFObjectHandle>& part9) 286 std::vector<QPDFObjectHandle>& part9)
289 { 287 {
290 - qpdf.getLinearizedParts(obj, part4, part6, part7, part8, part9); 288 + pdf.getLinearizedParts(obj, part4, part6, part7, part8, part9);
291 } 289 }
292 290
293 - static void 291 + void
294 generateHintStream( 292 generateHintStream(
295 - QPDF& qpdf,  
296 QPDFWriter::NewObjTable const& new_obj, 293 QPDFWriter::NewObjTable const& new_obj,
297 QPDFWriter::ObjTable const& obj, 294 QPDFWriter::ObjTable const& obj,
298 std::string& hint_stream, 295 std::string& hint_stream,
@@ -300,31 +297,31 @@ class QPDF::Writer @@ -300,31 +297,31 @@ class QPDF::Writer
300 int& O, 297 int& O,
301 bool compressed) 298 bool compressed)
302 { 299 {
303 - qpdf.generateHintStream(new_obj, obj, hint_stream, S, O, compressed); 300 + pdf.generateHintStream(new_obj, obj, hint_stream, S, O, compressed);
304 } 301 }
305 302
306 - static std::vector<QPDFObjGen>  
307 - getCompressibleObjGens(QPDF& qpdf) 303 + std::vector<QPDFObjGen>
  304 + getCompressibleObjGens()
308 { 305 {
309 - return qpdf.getCompressibleObjVector(); 306 + return pdf.getCompressibleObjVector();
310 } 307 }
311 308
312 - static std::vector<bool>  
313 - getCompressibleObjSet(QPDF& qpdf) 309 + std::vector<bool>
  310 + getCompressibleObjSet()
314 { 311 {
315 - return qpdf.getCompressibleObjSet(); 312 + return pdf.getCompressibleObjSet();
316 } 313 }
317 314
318 - static std::map<QPDFObjGen, QPDFXRefEntry> const&  
319 - getXRefTable(QPDF& qpdf) 315 + std::map<QPDFObjGen, QPDFXRefEntry> const&
  316 + getXRefTable()
320 { 317 {
321 - return qpdf.getXRefTableInternal(); 318 + return pdf.getXRefTableInternal();
322 } 319 }
323 320
324 - static size_t  
325 - tableSize(QPDF& qpdf) 321 + size_t
  322 + tableSize()
326 { 323 {
327 - return qpdf.tableSize(); 324 + return pdf.tableSize();
328 } 325 }
329 326
330 QPDF& pdf; 327 QPDF& pdf;
@@ -2160,7 +2157,7 @@ QPDFWriter::Members::initializeSpecialStreams() @@ -2160,7 +2157,7 @@ QPDFWriter::Members::initializeSpecialStreams()
2160 void 2157 void
2161 QPDFWriter::Members::preserveObjectStreams() 2158 QPDFWriter::Members::preserveObjectStreams()
2162 { 2159 {
2163 - auto const& xref = QPDF::Writer::getXRefTable(pdf); 2160 + auto const& xref = getXRefTable();
2164 // Our object_to_object_stream map has to map ObjGen -> ObjGen since we may be generating object 2161 // Our object_to_object_stream map has to map ObjGen -> ObjGen since we may be generating object
2165 // streams out of old objects that have generation numbers greater than zero. However in an 2162 // streams out of old objects that have generation numbers greater than zero. However in an
2166 // existing PDF, all object stream objects and all objects in them must have generation 0 2163 // existing PDF, all object stream objects and all objects in them must have generation 0
@@ -2185,7 +2182,7 @@ QPDFWriter::Members::preserveObjectStreams() @@ -2185,7 +2182,7 @@ QPDFWriter::Members::preserveObjectStreams()
2185 if (iter->second.getType() == 2) { 2182 if (iter->second.getType() == 2) {
2186 // Pdf contains object streams. 2183 // Pdf contains object streams.
2187 obj.streams_empty = false; 2184 obj.streams_empty = false;
2188 - auto eligible = QPDF::Writer::getCompressibleObjSet(pdf); 2185 + auto eligible = getCompressibleObjSet();
2189 // The object pointed to by iter may be a previous generation, in which case it is 2186 // The object pointed to by iter may be a previous generation, in which case it is
2190 // removed by getCompressibleObjSet. We need to restart the loop (while the object 2187 // removed by getCompressibleObjSet. We need to restart the loop (while the object
2191 // table may contain multiple generations of an object). 2188 // table may contain multiple generations of an object).
@@ -2216,7 +2213,7 @@ QPDFWriter::Members::generateObjectStreams() @@ -2216,7 +2213,7 @@ QPDFWriter::Members::generateObjectStreams()
2216 2213
2217 // This code doesn't do anything with /Extends. 2214 // This code doesn't do anything with /Extends.
2218 2215
2219 - std::vector<QPDFObjGen> eligible = QPDF::Writer::getCompressibleObjGens(pdf); 2216 + std::vector<QPDFObjGen> eligible = getCompressibleObjGens();
2220 size_t n_object_streams = (eligible.size() + 99U) / 100U; 2217 size_t n_object_streams = (eligible.size() + 99U) / 100U;
2221 2218
2222 initializeTables(2U * n_object_streams); 2219 initializeTables(2U * n_object_streams);
@@ -2297,7 +2294,7 @@ QPDFWriter::Members::prepareFileForWrite() @@ -2297,7 +2294,7 @@ QPDFWriter::Members::prepareFileForWrite()
2297 void 2294 void
2298 QPDFWriter::Members::initializeTables(size_t extra) 2295 QPDFWriter::Members::initializeTables(size_t extra)
2299 { 2296 {
2300 - auto size = QIntC::to_size(QPDF::Writer::tableSize(pdf) + 100) + extra; 2297 + auto size = QIntC::to_size(tableSize() + 100) + extra;
2301 obj.resize(size); 2298 obj.resize(size);
2302 new_obj.resize(size); 2299 new_obj.resize(size);
2303 } 2300 }
@@ -2577,7 +2574,7 @@ QPDFWriter::Members::writeHintStream(int hint_id) @@ -2577,7 +2574,7 @@ QPDFWriter::Members::writeHintStream(int hint_id)
2577 int S = 0; 2574 int S = 0;
2578 int O = 0; 2575 int O = 0;
2579 bool compressed = compress_streams && !qdf_mode; 2576 bool compressed = compress_streams && !qdf_mode;
2580 - QPDF::Writer::generateHintStream(pdf, new_obj, obj, hint_buffer, S, O, compressed); 2577 + generateHintStream(new_obj, obj, hint_buffer, S, O, compressed);
2581 2578
2582 openObject(hint_id); 2579 openObject(hint_id);
2583 setDataKey(hint_id); 2580 setDataKey(hint_id);
@@ -2786,14 +2783,14 @@ QPDFWriter::Members::writeLinearized() @@ -2786,14 +2783,14 @@ QPDFWriter::Members::writeLinearized()
2786 return result; 2783 return result;
2787 }; 2784 };
2788 2785
2789 - QPDF::Writer::optimize(pdf, obj, skip_stream_parameters); 2786 + optimize(obj, skip_stream_parameters);
2790 2787
2791 std::vector<QPDFObjectHandle> part4; 2788 std::vector<QPDFObjectHandle> part4;
2792 std::vector<QPDFObjectHandle> part6; 2789 std::vector<QPDFObjectHandle> part6;
2793 std::vector<QPDFObjectHandle> part7; 2790 std::vector<QPDFObjectHandle> part7;
2794 std::vector<QPDFObjectHandle> part8; 2791 std::vector<QPDFObjectHandle> part8;
2795 std::vector<QPDFObjectHandle> part9; 2792 std::vector<QPDFObjectHandle> part9;
2796 - QPDF::Writer::getLinearizedParts(pdf, obj, part4, part6, part7, part8, part9); 2793 + getLinearizedParts(obj, part4, part6, part7, part8, part9);
2797 2794
2798 // Object number sequence: 2795 // Object number sequence:
2799 // 2796 //