Commit 737c190dc6cfff8f2183d6e6815a606265a9cf2e

Authored by m-holger
1 parent 154d60c4

Refactor `QPDFWriter` to use `std::unique_ptr` for `m->to_delete` and `m->buffer_pipeline`.

Showing 1 changed file with 6 additions and 8 deletions
libqpdf/QPDFWriter.cc
@@ -276,7 +276,7 @@ class QPDFWriter::Members @@ -276,7 +276,7 @@ class QPDFWriter::Members
276 char const* filename{"unspecified"}; 276 char const* filename{"unspecified"};
277 FILE* file{nullptr}; 277 FILE* file{nullptr};
278 bool close_file{false}; 278 bool close_file{false};
279 - Pl_Buffer* buffer_pipeline{nullptr}; 279 + std::unique_ptr<Pl_Buffer> buffer_pipeline{nullptr};
280 Buffer* output_buffer{nullptr}; 280 Buffer* output_buffer{nullptr};
281 bool normalize_content_set{false}; 281 bool normalize_content_set{false};
282 bool normalize_content{false}; 282 bool normalize_content{false};
@@ -311,7 +311,7 @@ class QPDFWriter::Members @@ -311,7 +311,7 @@ class QPDFWriter::Members
311 std::string extra_header_text; 311 std::string extra_header_text;
312 int encryption_dict_objid{0}; 312 int encryption_dict_objid{0};
313 std::string cur_data_key; 313 std::string cur_data_key;
314 - std::list<std::shared_ptr<Pipeline>> to_delete; 314 + std::unique_ptr<Pipeline> file_pl;
315 qpdf::pl::Count* pipeline{nullptr}; 315 qpdf::pl::Count* pipeline{nullptr};
316 std::vector<QPDFObjectHandle> object_queue; 316 std::vector<QPDFObjectHandle> object_queue;
317 size_t object_queue_front{0}; 317 size_t object_queue_front{0};
@@ -398,18 +398,16 @@ QPDFWriter::setOutputFile(char const* description, FILE* file, bool close_file) @@ -398,18 +398,16 @@ QPDFWriter::setOutputFile(char const* description, FILE* file, bool close_file)
398 m->filename = description; 398 m->filename = description;
399 m->file = file; 399 m->file = file;
400 m->close_file = close_file; 400 m->close_file = close_file;
401 - std::shared_ptr<Pipeline> p = std::make_shared<Pl_StdioFile>("qpdf output", file);  
402 - m->to_delete.push_back(p);  
403 - m->pipeline_stack.initialize(p.get()); 401 + m->file_pl = std::make_unique<Pl_StdioFile>("qpdf output", file);
  402 + m->pipeline_stack.initialize(m->file_pl.get());
404 } 403 }
405 404
406 void 405 void
407 QPDFWriter::setOutputMemory() 406 QPDFWriter::setOutputMemory()
408 { 407 {
409 m->filename = "memory buffer"; 408 m->filename = "memory buffer";
410 - m->buffer_pipeline = new Pl_Buffer("qpdf output");  
411 - m->to_delete.push_back(std::shared_ptr<Pipeline>(m->buffer_pipeline));  
412 - m->pipeline_stack.initialize(m->buffer_pipeline); 409 + m->buffer_pipeline = std::make_unique<Pl_Buffer>("qpdf output");
  410 + m->pipeline_stack.initialize(m->buffer_pipeline.get());
413 } 411 }
414 412
415 Buffer* 413 Buffer*